如何观察 Ember 路由模板中的属性?
How do I observe properties in an Ember route template?
我有一条有时会显示对话框的路线。我的想法是创建一个这样的组件:
{{modal-dialog visible=dialogVisible contents=dialogContents}}
路由会根据需要设置 dialogVisible 和 dialogContents 属性,模板会相应地将这些属性传递给 modal-dialog
组件,这样对话框就会出现并显示正确的内容。
但这不起作用。模板观察路由的模型,而不是它们的属性。我怎样才能访问我的模板中的路由属性?
你试过了吗.observes('model.PROPERTY_NAME')
?
您为什么要从路线上观察这个 属性?我以前做过类似的事情,在控制器上设置 dialogVisible 属性 似乎更有意义,而不是在路线上。
不确定你的问题是什么。你这样做的方式似乎是正确的。
controllers/index.js
actions: {
createModal: function(someSpecialContent) {
this.set('dialogVisible', true);
this.set('dialogContents', someSpecialContent);
$('#modalId').modal('show');
}
}
templates/index.hbs
{{modal-dialog visible=dialogVisible contents=dialogContents}}
templates/components/modal-dialog.hbs
{{#if visible}}
your modal html here
...
<div class="modal-body">
{{#each contents as |content|}}
{{content.stuff}}
{{/each}}
</div>
...
{{/if}}
我有一条有时会显示对话框的路线。我的想法是创建一个这样的组件:
{{modal-dialog visible=dialogVisible contents=dialogContents}}
路由会根据需要设置 dialogVisible 和 dialogContents 属性,模板会相应地将这些属性传递给 modal-dialog
组件,这样对话框就会出现并显示正确的内容。
但这不起作用。模板观察路由的模型,而不是它们的属性。我怎样才能访问我的模板中的路由属性?
你试过了吗.observes('model.PROPERTY_NAME')
?
您为什么要从路线上观察这个 属性?我以前做过类似的事情,在控制器上设置 dialogVisible 属性 似乎更有意义,而不是在路线上。
不确定你的问题是什么。你这样做的方式似乎是正确的。
controllers/index.js
actions: {
createModal: function(someSpecialContent) {
this.set('dialogVisible', true);
this.set('dialogContents', someSpecialContent);
$('#modalId').modal('show');
}
}
templates/index.hbs
{{modal-dialog visible=dialogVisible contents=dialogContents}}
templates/components/modal-dialog.hbs
{{#if visible}}
your modal html here
...
<div class="modal-body">
{{#each contents as |content|}}
{{content.stuff}}
{{/each}}
</div>
...
{{/if}}