簡體   English   中英

Ember.js將值綁定到JSon對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM