使用普通的Javascript对象作为Ember模型

时间:2016-02-11 05:35:30

标签: javascript ember.js

是否可以在EmberJS中使用普通JS对象(比如文字对象)作为模型?

我在文档中看到的所有示例都使用Ember.Object(或数据存储区)

我认为我可能不会使用普通的JS获得像observable等的东西。但它至少得到了支持吗?

1 个答案:

答案 0 :(得分:1)

这不会可靠地运作。一个模板,如

{{model.prop}}

通过将观察者放在'model.prop'上来进行操作。这可能在某些情况下有效,但在其他情况下则不然,或者您可能会得到奇怪的Ember消息。

在Ember的所有方面中,最基本的是Ember对象模型。本质上,整个框架基于此模型并使用它来管理对象以及检索和设置属性。一旦你买进了Ember,你已经开始使用这个基于老式经典继承的对象模型。

出现问题的一个常见情况是服务器API返回一个普通的旧JS对象作为model属性的值。然后,您想在该对象内部挖掘,或在模板中显示其属性。在这种情况下,最好将对象转换为Ember对象(您可以使用变换进行此操作; google,您会发现有人这样做);或者,使用嵌入式模型,这不是一件容易的事,并且可能需要服务器端更改(例如在嵌入式模型中包含ID,尽管理论上您可以在适配器中添加一个ID)。后者就是我所做的,最终的结果就是保持我的理智。