我正在尝试设置一个取决于其他两个变量的变量,但我不想要那个计算出来的变量 变量对其中一个变量的初始化做出反应。
var viewModel = function() {
var self = this;
self.first = ko.observable("");
self.second = ko.observable();
self.doSmth = function() {
self.second(self.second() + 1);
};
self.init = function(o){
self.second(o);
};
self.comp = ko.computed(function(){
self.first();
self.second();
alert(self.second());
});
};
var vm = new viewModel();
ko.applyBindings(vm);
vm.init(111);
仅当我单击按钮并且因变量值已更改时,才会显示警报消息。并且没有任何带有' undefined'的消息和初始值' 111'。有没有内置的解决方案?感谢。
答案 0 :(得分:0)
我将使用简单的解决方案......如何设置标志以检查observable是否已初始化,如:
var viewModel = function() {
var self = this;
self.first = ko.observable("");
self.second = ko.observable();
self.doSmth = function() {
self.second(self.second() + 1);
};
self.init = function(o){
self.second(o);
};
var initialized = false;
self.comp = ko.computed(function(){
self.first();
self.second();
if (initialized) {
alert(self.second());
}
initialized = true;
});
};
var vm = new viewModel();
ko.applyBindings(vm);
vm.init(111);
这是fiddle。