Ember将输入值设置为JSON
我想将输入的value属性设置为一些JSON:Ember将输入值设置为JSON,json,binding,escaping,ember.js,Json,Binding,Escaping,Ember.js,我想将输入的value属性设置为一些JSON: Ember.TextField.extend({ valueBinding: Ember.Binding.transform(function(val){ return JSON.stringify(val); }) }); 如果val=test字符串,则DOM中的元素呈现如下: <input id="ember881" class="ember-view ember-text-field" type="text"
Ember.TextField.extend({
valueBinding: Ember.Binding.transform(function(val){
return JSON.stringify(val);
})
});
如果val=test字符串,则DOM中的元素呈现如下:
<input id="ember881" class="ember-view ember-text-field" type="text" value="" test""="">
有没有办法返回一些安全转义版本?
请回答您的问题,是的。下面的代码应该可以做到这一点,尽管我确信在某些地方有一个更漂亮的解决方案:
return new Handlebars.SafeString(Handlebars.Utils.escapeExpression(JSON.stringify(val)).toString()).toString();
然而,尽管我不确定您试图用这些代码实现什么,我还是将视图改写为:
App.test = Ember.TextField.extend({
valueBinding: 'test',
val: {"cat":"meow"},
test: function(){
return new Handlebars.SafeString(Handlebars.Utils.escapeExpression(JSON.stringify(this.val)).toString()).toString();
}.property('val')
});
这应该输出:
<input type="text" value="{"test":"meow"}" class="ember-view ember-text-field" id="ember239">
请注意,我假设您使用的是把手