Ember文档将user
描述为:
低级混合使ObjectProxy,ObjectController或ArrayControllers能够发出声明。
(注意它没有提及PromiseProxyMixin
。)
我一直在使用Controller
中的PromiseProxyMixin
,ModalController
最初是从Ember.ObjectController
扩展而来的。
现在不推荐ObjectController
(Ember 1.11),我已将此控制器转换为扩展Ember.Controller
,它不再按预期工作。
具体而言,返回到promise
属性的对象的属性不会自动设置在Controller
中(就像它们位于ObjectController
中一样。
我的isFulfilled
观察者仍在触发,但未设置应从返回的对象合并的属性。
文档还说明:
由于控制器是ObjectController,而json现在是其内容,所以所有json属性都可以直接从控制器获得。
所以我想我现在必须手动设置这些属性?
答案 0 :(得分:1)
由于Promise
返回的属性的合并不再自动发生,我的选项似乎是:
Controller
转换回ObjectController
(方向错误)Promise
返回的对象的属性(如果我在通用MyProxyMixin
中执行此操作可能有意义Controller
转换为ObjectProxy
(不确定)ProxyMixin
我会更喜欢#4,但是在这个mixin中有一些旋转(它作为Ember.FEATURE启用了一段时间,但似乎又被私有了。)
最终我选择了#2。 (我刚刚更新了我的代码,将我需要的属性复制到Controller
。)
答案 1 :(得分:0)
PromiseProxyMixin尚未弃用,并在其他环境中使用。 git上的current API docs没有提到控制器。你看到的措辞已经改变,我认为继续使用是安全的。
由于代理是ObjectProxy,而json现在是其内容,所以所有json属性都可以直接从代理中获得。
// Assuming the following json:
{
firstName: 'Stefan',
lastName: 'Penner'
}
// both properties will accessible on the proxy
proxy.get('firstName') //=> 'Stefan'
proxy.get('lastName') //=> 'Penner'