0
나는 다음과 같은 코드가 있습니다녹아웃 계산되지 않음?
self.isViewingFolder = ko.observable();
self.isViewingSet = ko.observable();
self.canEditFolder = ko.observable();
self.isViewingFolder(ko.computed(function() {
return router.activeRoute().moduleId == 'viewmodels/folder';
}));
self.isViewingSet(ko.computed(function() {
return router.activeRoute().moduleId == 'viewmodels/set';
}));
self.canEditFolder(ko.computed(function() {
return self.isViewingFolder() && auth.isAuthenticated() && !self.isPublicFolder()
}));
isViewingFolder 및 isViewingSet 항상 canEditFolder 한 번만를 업데이트하지만, 예상대로 업데이트된다. 내가
canEditFolder(isViewingFolder())
에 canEditFolder를 설정하면 그 다음은 작동하지만 내가이 관찰 계산 사용하고, 그래서 거기에 논리를해야합니다. 왜 이것이 효과가 없을까요?
설명해 주셔서 감사합니다. 더 많은 논리가 결국 canEdit의 가치를 결정할 것이기 때문에이 함수가 필요합니다. 방금 계산 된 observable 별도의 정의를 시도하고 함께 canEditFolder() 업데이트,하지만 여전히 업데이트되지 않습니다. 함수가 필요한 경우 어떻게 수정 될 수 있습니까? – RobVious
은 router.activeRoute()입니다. moduleId observable? 계산 된 재평가를 얻는 유일한 방법은 관찰 가능한 개체가 업데이트 이벤트를 던지거나 (해킹 된 솔루션에 대해) 평가할 새 요소를 제공하는 것입니다. var dummy = ko.observab – mikeswright49
isViewingFolder 및 isViewing set과 같은 것이 정상적으로 작동합니다. moduleId는 관찰 가능하지 않습니다. 그들은 observables이고 올바르게 업데이트됩니다 - canEditFolder가 그들을 잡는 이유는 무엇입니까? – RobVious