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