在 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 }}
如您所见,这取决于您的路由关系和您应用的结构。
我正在尝试做类似的事情:
{{#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 }}
如您所见,这取决于您的路由关系和您应用的结构。