运行以下代码时出现 javascript 运行时错误。 Uncaught TypeError: Cannot read property 'name' of null
在dep3
访问时self.dep2().name
。
dep2
如果我将的声明移到dep1
. 这是淘汰赛中的错误还是我做错了什么?在我看来,dep3
由于dep1
之前的更改dep2
而被重新计算,但我希望 Knockout 能够处理这种情况。
function ViewModel () {
var self = this;
self.root = ko.observable(null);
self.dep1 = ko.computed(function () {
return self.root() ? self.root().prop1 : null;
});
self.dep2 = ko.computed(function () {
return self.root() ? self.root().prop2 : null;
});
self.dep3 = ko.computed(function () {
if (self.dep1()) {
return self.dep2().name;
}
});
}
globalViewModel = new ViewModel();
globalViewModel.root({
prop1: {name: "ThisIsPropOne"},
prop2: {name: "thisIsPropTwo"}
});