【问题标题】:Ember set input value to JSONEmber 将输入值设置为 JSON
【发布时间】:2012-04-26 12:34:21
【问题描述】:

我想设置一些 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”版本? 问候

【问题讨论】:

    标签: json binding escaping ember.js


    【解决方案1】:

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

    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。

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 2014-05-09
      • 2020-09-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      相关资源
      最近更新 更多