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
。因此 set
和 get
没有在对象本身上定义。您可以在不是 Ember 对象的对象上使用 Ember.set
和 Ember.get
,它会触发计算属性。
Ember.set(model, 'newFriends', newPromise)
我有一条路线 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
。因此 set
和 get
没有在对象本身上定义。您可以在不是 Ember 对象的对象上使用 Ember.set
和 Ember.get
,它会触发计算属性。
Ember.set(model, 'newFriends', newPromise)