如何删除或设置Ember对象的内容?

时间:2013-01-07 17:33:43

标签: javascript jquery ember.js

我正在为我的项目使用Ember.js,我必须删除所有内容或将""null的每个属性设置为Ember.Object

所以正在发生的事情是,在模板中,有一些把手标签链接到一些对象属性({{myProperty}}),所以当对象被清空或每个属性设置为""null,如果属性更新为新值,则此绑定应该仍然存在。

有没有办法实现这个目标?有没有办法可以快速遍历所有属性?

2 个答案:

答案 0 :(得分:4)

(开始写这样认为eachAttributeEmber.Object上的一种方法,但它在DS.Model上。所以......)

如果您的对象恰好是Ember Data DS.Model实例,则有eachAttribute方法,该方法采用回调函数。所以,你建议做的一种方法可能是:

modelobj.eachAttribute(function(propName){
    modelobj.set(propName, null);
});

唯一想到的另一个想法是实例化对象的新“空白”实例,并将其分配给旧对象...我认为把手绑定会在大多数情况下正确更新如果你这样做了。

答案 1 :(得分:1)

您的应用程序是否可以在模板中使用{{#if}}语句来有条件地显示/隐藏您的属性?

喜欢这样:

{{#if view.showStuff }}
    <p>{{view.myProperty1}}</p>
    <p>{{view.myProperty2}}</p>
    <p>{{view.myProperty3}}</p>
{{else}}
    <p>Not showing content</p>
{{/if}}

如果showStuff为真,那么您的属性将被渲染,否则它将显示另一个html。

示例http://jsfiddle.net/cteegarden/rHafx/1/