扩展实体以创建需要导航属性的计算可观察对象

时间:2012-12-11 13:15:33

标签: knockout.js breeze

我正在尝试扩展一个实体来创建一个需要导航属性的计算observable:

app.domain.indicador = function () {
    this.ValorMetaActual = ko.computed({
        read: function () {
            console.log(this.ValoresMeta); //navigation property: undefined
            return 0;
        },
        deferEvaluation: true
    }, this);
};

问题是当创建observable时,导航属性尚不存在。

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:1)

这是一个错误,已在v 0.76.3中修复。如果这可以解决您的问题,请告诉我们。 ......谢谢你的发现。

答案 1 :(得分:0)

我假设问题是您的计算值显示在页面的某个位置 - 并且显示为未定义。如果您使导航属性(this.ValoresMeta)成为可观察对象,则Knockout将在最终分配ValorMetaActual时更新ValoresMeta的显示值。

app.domain.indicador = function () {
    this.ValoresMeta = ko.observable(0);
    this.ValorMetaActual = ko.computed({
        read: function () {
            console.log(this.ValoresMeta());
            return 0;
        },
        deferEvaluation: true
    }, this);
};

上面的代码将0指定为ValoresMeta的默认值。您可能需要一些其他默认值,但是您应该有一些默认值,这样您的计算就不会以未定义的方式结束。