当我通过needs API访问控制器的内容时,如何访问itemController的属性?
App.PostsIndexController = Ember.ArrayController.extend
itemController: 'post'
someAction: -> console.log("i'm melting!")
App.PostController = Ember.ObjectController.extend
someComputedProperty: (-> true ).property()
App.IndexController = Ember.Controller.extend
needs: ['postsIndex']
Run Code Online (Sandbox Code Playgroud)
<script type="text/x-handlebars" data-template-name="index">
{{#each post in controllers.postsIndex.content}}
{{someComputedProperty}}
<a {{action someAction target="postsIndex"}}>click</a>
{{/each}}
</script>
Run Code Online (Sandbox Code Playgroud)
我试过{{controllers.postsIndex.someComputedProperty}}并{{someComputedProperty}}在index模板中.
当我通过needs API访问控制器的内容时,如何访问itemController的属性?
首先你应该把它传递controllers.postsIndex给{{each}}助手而不是controllers.postsIndex.content.否则,{{each}}帮助程序将循环遍历模型对象,而不会通过PostsIndexController.就像@MilkyWayJoe建议的那样,试试类似:
<script type="text/x-handlebars" data-template-name="index">
{{#each post in controllers.postsIndex}}
{{someComputedProperty}}
<a {{action someAction target="postsIndex"}}>click</a>
{{/each}}
</script>
Run Code Online (Sandbox Code Playgroud)
我尝试过,但似乎someComputedProperty在更改时不会更新,尽管它在页面加载时正确计算.
除非您指定依赖项列表,否则Ember计算属性不会更新:
App.PostController = Ember.ObjectController.extend
someComputedProperty: (-> true ).property('title', 'someotherproperty', 'etc')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
692 次 |
| 最近记录: |