在 Ember 中,如何从 html 文件中的当前把手访问不同模型的属性?

In Ember how do I access an attribute from a different model from the current handlebar in the html file?

我正在尝试做类似的事情:

{{#if model.user.isAdmin}}
<div>
 My name is {{model.user.name}}
</div>
{{/if}}

在与用户无关的控制器的车把内:

<script type="text/x-handlebars" data-template-name="events/new">

我该怎么做?我怎样才能 use/show 来自另一个模型的值?

这可以通过多种方式完成。

如果您的新事件路由是例如用户路由(嵌套在您的路由器中)的子路由,您可以:

// events/new controller
Ember.Controller.extend({
    needs: ['user'] // a reference to the user controller
});

// events/new template
{{ controllers.user.model.name }}

如果不是子路由,可以调用store访问用户模型:

// events/new route
Ember.Route.extend({
    // use the user model as your model
    model: function() {
        // load a user by its id, or remove the id to load all users
        return this.store.find('user',1);
    }
});

// events/new template
{{ model.name }}

或者您可以在 events/new 路线中使用多个模型:

// events/new route
Ember.Route.extend({
    // return multiple models
    model: function() {
        return Ember.RSVP.hash({
            event: this.store.createRecord('event', {
                // add event properties here if needed
            }),
            user: this.store.find('user',1),
            ...
        });
    }
});

// events/new template
{{ model.user.name }}

如您所见,这取决于您的路由关系和您应用的结构。