我正在構建一個管理組件,它構建了一個用於編輯給定模型屬性的小窗體。關鍵是它是模型獨立的,我幾乎在那裏(我認爲),但我一直在努力讓綁定正常工作。通過模型的屬性進行綁定迭代
這裏的設置...模板action.hbs
提到了我的組件,並通過在modelMeta
屬性(更多的在秒):
{{model-admin-form
model=content
meta=modelMeta
}}
在控制器(ActionController
)我定義了modelMeta
屬性爲:
modelMeta: function() {
var vals = [];
var attributeMap = this.get('content.constructor.attributes');
var self = this;
attributeMap.forEach(function(name, value) {
item = Ember.Object.create({
name: value.name,
type: value.type,
value: self.get('content.' + name)
});
vals.push(item);
});
return vals;
}.property('content'),
這使我模型中的所有屬性的陣列,並且對於每個它給我「名稱」,「類型」和「值」。除了「價值」沒有被綁定到模型之外,這很好。 OK,沒問題,我只是改變了分配行:
valueBinding: self.get('content.' + name);
都能跟得上。這是行不通的。該死的。爲什麼不?那麼使用灰燼督察我可以看到,valueBinding
是安裝程序,但它_from
屬性似乎squiffy:
我會想到是指向像「controllers.actions.content ...」或有這樣的結果。相反,「Alt獲得」的值是屬性的實際字符串值,但不是綁定引用。
任何人都可以幫助我嗎?
= - = - = - = - = - = - = - UPDATE = - = - = - = - = - = - = -
我已經更新的例子稍微彌補更加清晰添加一點上下文。本練習的最終目標是提供一個計算屬性modelMeta
,它是一個數組,其中數組中的每個元素表示模型中屬性的元信息。捕獲的元信息是:
- name:屬性名
- 類型:變量(例如,字符串,數字等)
- 值/的ValueBinding的類型:綁定參考命名屬性在模型記錄上
前兩個是小菜一碟。最後一個是棘手的部分。獲得一個非綁定的值也是微不足道的,但綁定它似乎是棘手的。
太棒了。像魅力一樣工作。謝謝Jo。 – ken