Я новичок в нокауте. У меня есть 2 ViewModels
Первый имеет 2 адреса, домашний и почтовый.
var EntityViewModel = function (clientId, taxYear) {
var self = this;
self.id = ko.observable(null);
self.name = ko.observable('').extend({
required: { message: ' Name is required' },
validation: { validator: maxLength, message: ' Name must be less than 65 characters', params: 65 }
});
self.homeAddress = new AddressViewModel();
self.mailingAddress = new AddressViewModel();
};
2-й - модель представления адреса. Что я пытаюсь сделать, так это то, что если состояние равно -1, то раскрывающийся список страны включен, если состояние > 0, то раскрывающийся список страны отключен, а для идентификатора страны установлено значение 1, что соответствует Соединенным Штатам. но проблема в том, что каждый раз, когда я меняю состояние, и домашняя страна, и страна отправки включаются или отключаются. как мне это исправить?
var AddressViewModel = function () {
var self = this;
self.address1 = ko.observable('');
self.address2 = ko.observable('');
self.city = ko.observable('');
self.zipCode = ko.observable('');
self.stateId = ko.observable(null);
self.countryId = ko.observable(null);
self.enableState = ko.observable(false);
self.enableCountry = ko.observable(false);
self.stateId.subscribe(function (newValue) {
if (newValue <= 0) {
self.enableState(true);
self.countryId(null);
} else {
self.enableCountry(false);
self.countryId(1);
}
});
};
Кстати, у меня также есть флажок другого почтового адреса, если этот флажок не установлен, то весь почтовый адрес отключен. если флажок установлен, то вы можете редактировать.
Я загружаю свой код на jsFiddler, пожалуйста, помогите мне его исправить.