我有一个这样的视图模型:
var myViewModel = function (){
var self= this;
self.someObservable = ko.observable();
var someObservableSubscription = self.someObservable.subscribe(function(){
//some stuff including a different ajax 'Get'
});
self.ajaxPost = function(){
//some ajax
//on done call this method
cleanModel();
}
var cleanModel = function(){
someObservableSubscription.dispose();
self.someObservable('');
//now i want to resubscribe to my function here
//this is where I need help
}
我是否还要再做一次self.someObservable.subscribe(function(){ //some function})
?我想清理变量中的值而不会丢失我的observable,但如果我在订阅时清理它,它将尝试使用null值进行ajax调用。
我想另一种解决方法是将我的订阅函数包装在if
中,在执行任何操作之前检查observable的值是否有效。哪一种最好?还有其他方法吗?
答案 0 :(得分:0)
而不是调用dispose
然后调用" undispose
" < ---(构成一个),处理更改值的正确方法是将subscribe函数的内部包装在if
语句中。
以下示例:
var someObservableSubscription = self.someObservable.subscribe(function(){
if (self.someObservable() > 0) {
//some stuff including a different ajax 'Get'
}
});