从父控制器访问itemControllers



是否可以从父控制器访问itemControllers集合?我有以下代码:

App.ShoppinglistController = Ember.Controller.extend(
  cartContent: null
  actions:
    removeSelected: ->
      # How to I get each of the cart contents with it's ShoppinglistItemController?
      # I want to filter them by the 'isSelected' property
)
App.ShoppinglistItemController = Ember.ObjectController.extend(
  isSelected: null
)
App.ShoppinglistRoute = Ember.Route.extend(
  setupController: (controller) ->
    # [...]
    controller.set('cartContent', cartContent)
)
<script type="text/x-handlebars" data-template-name="shoppinglist">
  {{#each cartContent itemController="shoppinglistItem"}}
    {{title}}
    {{view Ember.Checkbox checked=isSelected}}
  {{/each}}
  <div {{action 'removeSelected'}}>Remove selected items</div>
</script>

而不是在每个视图辅助对象中使用itemController="shoppinglistItem"。将其移动到App.ShoppinglistController。如下所示:

App.ShoppinglistController = Ember.Controller.extend(
  itemController: "shoppinglistItem"
  cartContent: null
  actions:
    removeSelected: ->
      cartsToRemove = @.get('cartContent').filterBy('isSelected', true)
      # ... remove the carts
)
App.ShoppinglistItemController = Ember.ObjectController.extend(
  isSelected: null
)
App.ShoppinglistRoute = Ember.Route.extend(
  setupController: (controller) ->
    # [...]
    controller.set('cartContent', cartContent)
)
<script type="text/x-handlebars" data-template-name="shoppinglist">
  {{#each cartContent}}
    {{title}}
    {{view Ember.Checkbox checked=isSelected}}
  {{/each}}
  <div {{action 'removeSelected'}}>Remove selected items</div>
</script>

最新更新