0

我想设置一些 JSON 输入的 value 属性:

Ember.TextField.extend({
   valueBinding: Ember.Binding.transform(function(val){
      return JSON.stringify(val);
   })
});

如果 val="test" (a string) DOM 中的元素呈现如下:

<input id="ember881" class="ember-view ember-text-field" type="text" value="" test""="">

有没有办法返回一些“SafeEscaped”版本?问候

4

1 回答 1

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。

于 2012-04-28T15:57:28.770 回答