Knockout无法从模型内部访问ObservableArray

时间:2013-06-27 22:24:39

标签: knockout.js ko.observablearray

这可能是非常基本的,但我似乎无法弄明白。问题出在

我有一个带有可观察数组'self.product'的视图模型,并希望从嵌套模型访问它,如下所示。当我运行这个时,我得到一个产品不存在的错误。我没有包含代码,但有一个ajax调用获取数据并将其推送到'product'。同时在函数'test'上使用单击绑定会打印该值。

我虽然可能是'self'的一个范围问题,但是因为我在标记中使用foreach绑定中的'product'数组,所以我不能只将self.product ...更改为var产品。我怎么能做到这一点?

var viewModel = function () {
        var self = this;
        self.product = ko.observableArray([]);
var orderItem = function (data) {
            var self = this;
            self.PlayDuration = ko.computed(function () {
                var foo  = self.product()[0].something();
                return foo;
            });

        }
self.updateTotals = function () {
            console.log(self.product()[0].something());
        }
});

1 个答案:

答案 0 :(得分:1)

var root = this;

将该行添加到最外层的viewmodel并在内部视图模型中使用它。