2014-01-30 51 views
0

大师,微风角(定义客户端属性)

这里是我的情况:

我对我的一个实体使用微风的registerEntityTypeCtor功能定义一个新的客户端属性(即全名)。 fullName属性被编码以检查实体上的firstName和lastName属性的值以确定它的值。它适用于我正在执行查询并从数据库接收实体。但是,当我在客户端创建一个新实体(调用breeze的createEntity函数),或者在不进行保存的情况下对firstName或LastName属性进行更改时,自定义的fullName属性将永远不会更新,直到我执行另一个db pull 。随着微风的变化跟踪不应该更新任何时候任何名称属性更改fullName属性?在调试过程中,我注意到当我在代码中使用getter时:(即var fullName = entity.fullName) - 当我单步执行代码时,ctor将点击我的实体的“backingStore”值默认值(使用createEntity)或最后一个数据库值,但绝不会是实体的当前值。

我错过了什么?由于

这里是我用来设置该属性的示例:添加computeds你的微风实体的例子

function registerSpmoleSurvey(metadataStore) { 
     metadataStore.registerEntityTypeCtor('SpmoleSurvey', spmoleSurvey); 

     function spmoleSurvey() { } 

     Object.defineProperty(spmoleSurvey.prototype, 'fullName', { 
      get: function() { 
       var ln = this.lastName; 
       var fn = this.firstName; 

       return ln ? fn + ' ' + ln : fn; 
      } 
     }); 

    } 

回答

0

看这个页面 - 在

http://www.breezejs.com/documentation/extending-entities

通行证匿名函数作为扩展实体的第三个参数。

+0

感谢@PWKad,但文章似乎适合使用淘汰赛来解决问题,我的应用程序正在使用角框架。 – user2249951

+0

计算的属性来自淘汰赛,但初始化程序保持为真。 –

0

嗨,弄清楚我做错了什么......看起来我是骆驼的受害者,并且我不恰当地利用了财产名称。错误,因为现在宣传︰}