在ember中运行时创建模型属性

时间:2018-01-02 08:14:16

标签: ember.js ember-data

我正在创建一个ember应用程序,我想实现一个用ember构建的表。我能够使用ember-models-table创建一个表,我已经能够使用列列表和数据呈现表。现在的问题是列列表来自服务器和ember-data我需要将所有列作为属性放在模型中以显示数据,所以有人可以帮我加载ember模型中的列列表运行时间。

我的控制器如下

self.get("store").query("user",{page:1,pageSize:10}).then(function (data) 
            {
                self.set("data",data);
            });

我的用户模型如下

/* With this it works */    
index: DS.attr("number"),
firstname: DS.attr("string"),
lastname: DS.attr("string"),
age: DS.attr("number"),
city: DS.attr("string")

/* but i want these attributes to be dynamic based on server response */

1 个答案:

答案 0 :(得分:0)

Ember Data用于指定数据模型,即您拥有的不同类型数据类型的结构。 这个结构,即user.set('foobar',42)规范,是ember-data跟踪何时应该将模型实例视为“已更改”所必需的(即当其中一个命名属性发生更改时; foobar将作为预期但如果.save()不在模型属性中,则不计入用户对象的更改)以及要在foobar上发送到服务器的属性(在这种情况下,不是data)。

如果你有一个API端点根据查询参数或任何东西返回不同结构的数据,你可以说实际上没有数据模型,最好不要使用ember-data。

如果我正确地回忆起ember-models-table,它不需要像store那样的模型实例数组,所以你也可以直接而不是通过Ember.Object进行Ajax调用,包装你在{{1}}中灵活的“服务器响应”的对象,并将它们的数组传递给ember-models-table(或尝试传递普通的旧json对象数组,即直接服务器响应,即使是文档没有暗示它。)