如何观察 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}}