2014-06-11 16 views
0

在我的项目创造了我在构造函数中定义的属性定义的属性通常不会在微风

Object.defineProperty(this, 'DTasks', { 
     get: function() { 
      return handlePropertyGet('_dtasks', "DTasks"); 
     }, 
     set: function(value) { //used only when loading incidents from the server 
      handlePropertySet('DTask', value); 
     }, 
     enumerable: true 
    }); 

怎么过在微风的新版本 - 除了使用严格的真正删除属性,以便有需要添加configuresbe:true。但是此属性在backingStore中“重新创建”,并且此属性的值会添加结果字段。在微风中定义财产的最佳方式是什么?因为这个属性不需要在backingStore中,因为它没有映射到一个,所以也许可以在初始化类型中定义它?由于我使用的是缺少导航属性的正确配置的Microsoft OData,因此我将这些属性用于扩展的群体

回答

0

当您为未映射的属性使用ES5定义的属性时,Breeze将假定您想要将行为(例如更改跟踪,验证等)附加到设置者。这就是为什么Breeze会将属性添加到backingStore。如果你想定义它们而不告诉Breeze跟踪它们,你可以使用施工后初始化技术。

var customerInitializer = function(customer) { 
    customer.isBeingEdited = ko.observable(false); 

    //or just customer.isBeingEdited = false, if you're using Angular 
}; 

metadataStore.registerEntityTypeCtor('Customer', null, customerInitializer); 

您可以了解不同的方式更多的细节,在http://www.breezejs.com/documentation/extending-entities

希望这有助于延长你的实体。