簡體   English   中英

在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">

我將如何處理? 如何使用/顯示其他模型的值?

這可以通過幾種方式來完成。

如果您的新事件路由是子路由,例如用戶路由(嵌套在路由器中),則可以執行以下操作:

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

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

如果不是子路由,則可以通過調用商店來訪問用戶模型:

// 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 }}

如您所見,這取決於路線和應用程序結構的關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM