Ember.js 如何观察余烬管线模板中的属性?
我有一条路线,有时会显示一个对话框。我的想法是创建如下组件:Ember.js 如何观察余烬管线模板中的属性?,ember.js,properties,routes,Ember.js,Properties,Routes,我有一条路线,有时会显示一个对话框。我的想法是创建如下组件: {{modal-dialog visible=dialogVisible contents=dialogContents}} 路由将根据需要设置dialogVisible和dialogContents属性,模板将相应地将这些属性传递给模态对话框组件,这样对话框将显示并显示正确的内容 但这不起作用。模板观察管线的模型,而不是其属性。我如何才能访问模板中的路由属性?您是否尝试过.observes('model.PROPERTY_NAME
{{modal-dialog visible=dialogVisible contents=dialogContents}}
路由将根据需要设置dialogVisible和dialogContents属性,模板将相应地将这些属性传递给模态对话框
组件,这样对话框将显示并显示正确的内容
但这不起作用。模板观察管线的模型,而不是其属性。我如何才能访问模板中的路由属性?您是否尝试过
.observes('model.PROPERTY_NAME')
为什么你要从路线上观察这个属性?我以前也做过类似的事情,在控制器上设置dialogVisible属性似乎更有意义,而不是路由。不确定您的问题是什么。你的做法似乎是正确的 控制器/index.js 模板/index.hbs 模板/组件/modal-dialog.hbs
{{#如果可见}
你的模态html在这里
...
{{{#每个内容作为{content}}
{{content.stuff}
{{/每个}}
...
{{/if}
有一个很棒的插件。从长远来看,这可能会对你有所帮助。我不认为这是一种经得起未来考验的方法:“控制器非常类似于组件,以至于在未来版本的Ember中,控制器将完全由组件取代。”@ed94133逻辑仍然保持不变,代替控制器的是带有模型参数的可路由组件。例如routes/my dir/index.js和components/my dir/index js
actions: {
createModal: function(someSpecialContent) {
this.set('dialogVisible', true);
this.set('dialogContents', someSpecialContent);
$('#modalId').modal('show');
}
}
{{modal-dialog visible=dialogVisible contents=dialogContents}}
{{#if visible}}
your modal html here
...
<div class="modal-body">
{{#each contents as |content|}}
{{content.stuff}}
{{/each}}
</div>
...
{{/if}}