Javascript Ember.js将值绑定到JSon对象
我试图将输入值绑定到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
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,我无法以我希望的方式重新格式化它(我在测试时就发现了这一点,但我正试图找到一种方法来实现这一点:)