0
我试图将自定义属性添加到Ember数据模型。具体而言,我想添加一个属性,该属性定义要在我正在写入的Ember数据适配器中使用的REST终点。将自定义属性添加到Ember模型
我的模型被定义为这样的(与自定义属性 '端点'):
import DS from 'ember-data';
export default DS.Model.extend({
partner_id : DS.attr('string'),
partner_key : DS.attr('string'),
partner_name : DS.attr('string'),
created : DS.attr('string'),
status : DS.attr('string'),
type : DS.attr('string'),
endPoint : 'api_entry'
});
在我的适配器我想如下访问属性:
_buildURL: function (modelName, store, id, snapshot, requestType, query) {
var host, namespace, url;
var model = store.modelFor(modelName);
var endPoint = model.endPoint;
var endPoint2 = Ember.get(model, 'endPoint');
console.log(endPoint, endPoint2);
host = Ember.get(this, "host");
namespace = Ember.get(this, "namespace");
url = [];
if (host) {
url.push(host);
}
if (namespace) {
url.push(namespace);
}
url.push(modelName);
url = url.join("/");
if (!host) {
url = "/" + url;
}
return url;
},
在上述的console.log,无论端点和端点2是不确定的。我是Ember和Javascript的新手。我究竟做错了什么?是否有更多'Ember'的方式来做到这一点?我不想使用实际的REST端点名称作为我的模型名称,因为它们不符合Ember模型命名约定。
非常感谢。
这可行,但我不确定该模型是否适合放置该模型。最好使用适配器。 – aceofspades
然后你需要一个特殊的适配器为每个模型。通过这种方式,您可以在应用程序适配器 – dwickern
@dwickern中编写一次代码 - 非常感谢您的回答,为我节省了很多挫折!我想我错过了一个基本概念,让我解释一下。我可以添加自定义属性到通过衍生控制器: “出口默认Ember.Controller.extend” 那么,为什么我不能将它们添加到通过也衍生模式“扩展”: “出口默认DS.Model.extend' 控制器API文档说,“扩展”创建一个新的子类,这是不是相同的模型? – InTooDeep