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

Ember-data: How DS.attr("number") is supposed to work?

本文关键字:何工作 工作 数字 数据 DS attr Ember      更新时间:2024-03-13

我在服务器上使用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是未定义的(其他属性具有根据服务器响应应该具有的值)。无论是否有引号("selected":"32483")("selected":32483),它都是未定义的。如果我将此属性定义为字符串,它会起作用,但我不喜欢将整数定义为字符串。

这是一条评论,但我的代表不够好。我想,既然你已经在值是字符串的情况下实现了这一点,这就没有什么问题,但你不需要用大写定义DS吗?

只需阅读此处的文档: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")
});