Ember.js(和 Ember Data)允许我指定模型的属性,例如id,label和description. 但是我允许我的用户将他们自己的属性添加到任何模型中,这显然是我不可能知道的。有什么方法可以在运行时向模型动态添加属性?(更重要的是,Ember.js 会识别这些属性的变化并保存它们吗?)
			
			4634 次
		
1 回答
            13        
        
		
Ember 通过Ember.defineProperty. 签名是Ember.defineProperty(object, propertyName, function)。例如,要定义由lorem支持的属性_lorem,您可以使用
Ember.defineProperty(this, 'lorem', 
  Ember.computed(function (key, value) {
    if (value) {
      this.set('_lorem', value);
      return value;
    } else {
      return this.get('_lorem');
    }
  }  
));
propertyName当它是动态的时,您可以基于用户输入处理程序调用此方法。这种东西最适合扩展 Meta 对象系统。建议谨慎,尤其是用户输入!
于 2013-07-11T13:47:44.350   回答