2

当我通过需求 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']
<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>

我试过{{controllers.postsIndex.someComputedProperty}}{{someComputedProperty}}index模板中。

4

1 回答 1

5

当我通过需求 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>

我试过了,但似乎 someComputedProperty 在更改时不会更新,尽管它在页面加载时计算正确。

除非您指定依赖项列表,否则 Ember 计算属性不会更新:

App.PostController = Ember.ObjectController.extend
  someComputedProperty: (-> true ).property('title', 'someotherproperty', 'etc')
于 2013-04-05T22:48:36.817 回答