ember 为 rsvp promise 添加一个 promise 因为 action

ember add an promise to a rsvp promise because of action

我有一条路线 returns 几个模型

FriendEnemyRouter

model: function() {
    return Ember.RSVP.hash({
        friends: this.store.find('People', ...),
        enemies: this.store.find('People', ..),

在同一个路由器上有一个动作(它在路由器上,因为它确实存储 'things')

actions: {
     findMoreFriends: function(param, param) {
         var newFriends = this.store.find('People', ..); 
         var newPromise = this.controller.get('model'); //OK. Inspecting sees above friends and enemies. What type is it?

         model.set("newFriends": newPromise); // throws an exception
         //-- or --
         model.newFriends = newPromise; // no exception but observer (computer property) on the controller is not fired.
     }
 }

最终我希望控制器上的这个计算 属性 能够启动

 FriendEnemyController

  computedNewFriends: function() {
       ....
   ).property('newFriends');

向 rsvp 承诺添加新承诺的过程是什么...甚至不确定对象类型...

         model.set("newFriends": newPromise); // throws an exception
         model.newFriends = newPromise; // no exception but clearly doesnt notify observer/property

RSVP.hash 解析 POJO,这意味着它不会扩展 Ember.Object。因此 setget 没有在对象本身上定义。您可以在不是 Ember 对象的对象上使用 Ember.setEmber.get,它会触发计算属性。

Ember.set(model, 'newFriends', newPromise)