Ember将输入值设置为JSON

时间:2012-04-26 12:34:21

标签: 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="" test""="">

有没有办法返回一些“SafeEscaped”版本? 此致

1 个答案:

答案 0 :(得分:0)

回答你的问题,是的。以下代码应该可以解决问题,但我确信某处有更漂亮的解决方案:

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">

请注意,我假设您正在使用Handlebars。