1

希望页面是没有 Ember 的静态页面。单击卡片时,我将其 id 传递到 url 参数中,以便 Ember 应用程序可以使用它:

http://cards.com/category?category_id=2&selected_card_id=3

申请途径:

@controllerFor('creditCards').set 'content', App.CreditCard.find category_id: categoryId

我想获取选定的卡并将其传递给SelectedCardsController

@controllerFor('creditCards').set 'content', App.CreditCard.find category_id: categoryId
@controllerFor('selectedCards').set 'content', App.CreditCard.find selectedCardId

问题是这SelectedCardsController是一个数组控制器,当我尝试以这种方式填充它的内容时,我得到了错误Uncaught TypeError: Object [object Object] has no method 'addArrayObserver'

我的问题是:如何将这条记录传递给数组控制器?

4

1 回答 1

0

在 Ember 中,惯用的方法是使用needs. 无需设置 的contentSelectedCardsController您可以直接从 中查找属性CreditCardsController或声明计算属性以使本地查找更容易。

App.SelectedCardsController = Ember.Controller.extend({
  needs: 'credit_cards',
  creditCardsBinding: 'controllers.credit_cards',

  selectedCardId: function() {
    return this.get('credit_cards.selectedCardId')
  }.property('credit_cards')
});
于 2013-07-04T17:09:39.173 回答