2
我正在編寫一個預約應用程序。 預訂程序相當複雜,並且具有相當多的依賴性,所以我決定使用knockout來幫助我觀察更改並更新UI。Knockout JS - viewModel訪問
我開始實施客戶名單。表單中的第一位顧客將是必須輸入他的詳細信息的人,其他人只需要姓名。 我想我可以只添加一個dependentObservable來檢查當前客戶是否是customers數組中的第一個,以決定是否顯示其他字段。
問題是,當試圖從客戶訪問viewModel時,我只得到'undefined'。 我試過把viewModel的引用傳遞給客戶,但那也沒有效果。 我在做什麼錯?可以viewModel不被訪問?
下面的代碼:
var customer = function(){
this.firstName = ko.observable('');
this.lastName = ko.observable('');
this.fullName = ko.dependentObservable(
function(){
return this.firstName() + " " + this.lastName();
},
this
);
this.gender = ko.observable('');
this.diet = ko.observable('');
this.primaryCustomer = ko.dependentObservable(
function(){
console.log(viewModel);
return viewModel.customers.indexOf(this) == 0;
},
this
);
this.email = ko.observable('');
}
var viewModel = {
customers: ko.observableArray([new customer()]),
addCustomer: function(){
this.customers.push(new customer());
},
removeCustomer: function(customer){
this.customers.remove(customer);
}
}
ko.applyBindings(viewModel);