Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ember.js将值绑定到JSon对象_Javascript_Json_Ember.js_Handlebars.js - Fatal编程技术网

Javascript Ember.js将值绑定到JSon对象

Javascript Ember.js将值绑定到JSon对象,javascript,json,ember.js,handlebars.js,Javascript,Json,Ember.js,Handlebars.js,我试图将输入值绑定到JSon对象,但找不到使其工作的方法 这是我的一个样品 Data = { value = "test" }; 还有我的应用程序 App.FIXTURES = [ { title : "What is your age?", linkedTo : Data.value } ]; 和我的模板: {{#each questions}} {{title}} {{input type="text" value

我试图将输入值绑定到JSon对象,但找不到使其工作的方法

这是我的一个样品

Data = {
    value = "test"
};
还有我的应用程序

App.FIXTURES = [
    {
       title : "What is your age?",
       linkedTo : Data.value
    }
];
和我的模板:

 {{#each questions}}
     {{title}}
     {{input type="text" valueBinding=linkedTo}}
 {{/each}}
{{input type="text" valueBinding=linkedTo.actualValue}}
绑定只以一种方式工作,它检索要显示的值,但当我尝试访问
Data.value
字段时,它不会更改

有可能这样做吗?我试了好几种方法都没有成功。我是否必须扩展
Ember.Textfield
?如果是,您将如何实施


谢谢,Javascript字符串是不可变的。您实际上是将值
“test”
复制到
链接到
而不是将其链接到
数据。值

即使是真的,我有一个建议,以防您仍然想要实现这种功能。因此,请尝试使用一个要更改其键的对象,而不是实际的字符串值

我的意思是,在使用要绑定的实际字符串时,使用对象并绑定到属性。因此,不要直接使用
Data.value
string value,而是将
Data.value
用作一个对象,该对象具有一个键
actualValue
,该键将保存字符串的值。现在余烬可以设置它的魔术绑定到这个属性和改变值

因此,当您想要获取
Data.value
字符串值时,您可以选择
Data.value.actualValue
,它绑定到
链接到.actualValue

因此,您的代码将变成:

var Data = {
  value: {
    actualValue: 'test'
  }
};

App.FIXTURES = [
  {key: 'red', linkedTo: Data.value}
];
在模板中:

 {{#each questions}}
     {{title}}
     {{input type="text" valueBinding=linkedTo}}
 {{/each}}
{{input type="text" valueBinding=linkedTo.actualValue}}
从何处获得价值:

el.innerHTML = Data.value.actualValue + '<br/>' + el.innerHTML;
el.innerHTML=Data.value.actualValue+'
'+el.innerHTML;
这是我试图解释的东西的一个演示

多亏了,我有了一个解决问题的新想法

我创建了一个新的自定义视图,扩展了
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\')');
    }
});

因此,每次我更新值时,它都会在我的文本字段和json之间完全同步。

这是一个很好的技巧,但我的json来自API,我无法以我希望的方式重新格式化它(我在测试时就发现了这一点,但我正试图找到一种方法来实现这一点:)