Ember-data:DS.attr(“数字”)应该如何工作?

时间:2015-02-20 23:59:26

标签: javascript php ember.js ember-data

我在服务器上使用DS.RESTAdapter,php。我有一个模型UacList:

DS.Model.extend({
    dummyFieldForErrors: DS.attr("string"),
    selected: DS.attr("number"),
    uacs: DS.hasMany("uac")
});

Ember发送请求GET / rest / uacLists / 1。服务器响应是:

{
    "uacList":{
        "id":1,
        "selected":32483,
        "uacs":[33618,9678,...,33656]
    },
    "uacs": [...]
}

但是Ember Inspector告诉我,selected是未定义的(其他属性根据服务器响应具有它们应具有的值)。无论是否有引号(“选择”:“32483”)或不引用(“选择”:32483),无论如何都是未定义的。如果我将此属性定义为字符串,它可以工作,但我不喜欢将整数定义为字符串。

2 个答案:

答案 0 :(得分:0)

这是一个评论,但我的代表不够好。我想,因为当值为字符串时你已经有了这个工作,这不是什么问题,但你不需要用大写字母定义DS吗?

答案 1 :(得分:0)

在这里阅读文档: http://emberjs.com/api/data/classes/DS.html#method_attr

  

默认情况下,属性按原样传递,但您可以   指定一个可选类型以使值自动转换。

所以对我来说,这意味着你不应该使用'number''string'作为selected属性。

DS.Model.extend({
    dummyFieldForErrors: DS.attr("string"),
    selected: DS.attr(),
    uacs: DS.hasMany("uac")
});