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