0

我使用 Ember + Ember 数据。当我创建一个实体时,即使在相应的服务器端调用它的状态属性(isLoaded、isNew、isValid 等)都是未定义的。我的期望是这些应该正确设置。例如,在服务器端调用之前,我希望 isNew 为“真”,在服务器端创建之后,我希望 isNew 为“假”。

我正在以这种方式创建实体:

myEntity = MyApp.MyEntity.createRecord({attr1: "value1"});
...
myEntity.transaction.commit();

来来回回的是:

Sent:
{"myEntity":{"attr1":"value1"}}
...
Received:
{"myEntity":{"id":2,"attr1":"value1","attr2":"value2"}}

实体本身定义如下:

MyApp.MyEntity = DS.Model.extend({
    attr1: DS.attr("string"),
    attr2: DS.attr("string")
});

不幸的是,在远程调用“myEntity”之前和之后,所有状态属性都为“未定义”。我错过了什么吗?

谢谢!

4

2 回答 2

0

我猜这个问题可能是你没有遵循 Ember Data 的命名约定。如果您使用默认值,您MyApp.MyEntity将被发布到,Ember Data 将在或键下的响应中查找模型。/my_entityDS.RESTAdaptermy_entitymy_entitys

还可以通过使用map函数 on来自定义此默认行为App.Adapter

于 2013-04-20T14:05:15.133 回答
0

我的问题是我直接检索状态,即不使用吸气剂。

错误:myEntity.isNew -> 未定义

右:myEntity.get('isNew') -> true

于 2013-04-23T23:11:08.953 回答