[英]Ember.js Binding value to JSon object
我正在嘗試將輸入值綁定到JSon對象,但我找不到使其工作的方法。
這是我的對象的一個示例。
Data = {
value = "test"
};
和我的App.FIXTURES
App.FIXTURES = [
{
title : "What is your age?",
linkedTo : Data.value
}
];
我的模板:
{{#each questions}}
{{title}}
{{input type="text" valueBinding=linkedTo}}
{{/each}}
綁定僅以一種方式工作,它檢索要顯示的值,但是當我嘗試訪問Data.value
字段時,它永遠不會改變。
是否有可能做到這一點? 我嘗試了幾種方法卻沒有成功。 我是否必須擴展Ember.Textfield
? 如果是的話,你會如何實現這個?
謝謝,
Javascript字符串是不可變的。 您實際上是將值"test"
復制到linkedTo
而不是將其鏈接到Data.value
即使是什么kingpin2k是真的,我有一個建議,以防你仍然想要實現這種功能。 因此,請嘗試使用其鍵更改的對象而不是實際的字符串值。
我的意思是,使用實際的字符串來綁定,而是使用對象並綁定到屬性。 因此,不是直接使用Data.value
字符串值,而是使用Data.value
作為對象,其具有將保存字符串值的鍵actualValue
。 現在,ember可以設置綁定到此屬性的魔法並更改值。
所以,當你想獲得Data.value
字符串值,而不是你去Data.value.actualValue
這勢必給linkedTo.actualValue
所以你的代碼將成為:
var Data = {
value: {
actualValue: 'test'
}
};
App.FIXTURES = [
{key: 'red', linkedTo: Data.value}
];
在模板中:
{{input type="text" valueBinding=linkedTo.actualValue}}
在哪里你會得到價值:
el.innerHTML = Data.value.actualValue + '<br/>' + el.innerHTML;
這是我試圖解釋emberjs jsbin的一些演示
感謝tavi ,我帶來了解決問題的新想法。
我創建了一個擴展Ember.TextField
的新自定義視圖:
App.CustomTextField = Em.TextField.extend({
keyUp:function(event){
console.log(this.get('value'));
//Watch input for Security code injection!!
eval(linkedto + ' = this.get(\'value\')');
}
});
所以每當我更新它的值時,它在我的textfield和json之間完全同步。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.