Breeze Angular(定义客户端属性)

时间:2014-01-30 19:54:24

标签: angularjs breeze

大师,

以下是我的情景:

我正在使用breeze的registerEntityTypeCtor函数在我的一个实体上定义一个新的客户端属性(即fullName)。对fullName属性进行编码,以检查实体上firstName和lastName属性的值,以确定它的值。它在我执行查询并从数据库接收实体时起作用。

但是,当我在客户端创建一个新实体(调用breeze的createEntity函数)或更改firstName或LastName属性而不进行保存时,自定义fullName属性永远不会更新,直到我执行另一个db pull。使用breeze更改跟踪时,任何名称属性都不会更改fullName属性更新吗?

在调试期间,我注意到当我在代码中使用getter时:(即var fullName = entity.fullName) - 当我逐步执行代码时,ctor将命中我的实体的“backingStore”值,这是默认值value(使用createEntity)或最后一个db值,但绝不是实体的当前值。

我错过了什么?谢谢

以下是我用于设置属性的示例:

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;
            }
        });

    }

2 个答案:

答案 0 :(得分:0)

请查看此页面,了解向Breeze实体添加计算机的示例 -

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

传入一个匿名函数作为扩展实体的第三个参数。

答案 1 :(得分:0)

HI弄清楚我做错了什么......似乎我是camelCasing的受害者,我不恰当地将属性名称大写。错误的广告现在:}