Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
Ember将输入值设置为JSON_Json_Binding_Escaping_Ember.js - Fatal编程技术网

Ember将输入值设置为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"

我想将输入的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" 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="{&quot;test&quot;:&quot;meow&quot;}" class="ember-view ember-text-field" id="ember239">
请注意,我假设您使用的是把手