나는 어제부터 녹아웃 js를 배우고 있습니다. 모든게 내게 새 것처럼 보입니다. 나는 어떻게 든 그것을 할 수있다. 우리는 js를 사용하여 Database에 국가 목록, 상태 목록을 저장한다고 말합니다. 나는 국가 목록을 저장하는 첫 번째 작업을 수행했습니다. 문제는 상태 목록을 저장하는 두 번째 페이지에서 시작되었습니다. 여기에 나는 states.aspx 페이지의 드롭 다운리스트에 국가를 바인딩하고있다. 녹아웃 js 바인딩 목록을 드롭 다운
내가 코드를 제공하자 :<div id="state_container">
<table border="0" cellpadding="0" cellspacing="0" class="form" data-bind="with:StateModel"
width="300px">
<tr>
<td>
<span>StateName </span>
<input type="text" name="stateName" data-bind="value:StateName" />
</td>
</tr>
<tr>
<td>
<span>Short Name</span>
<input type="text" name="shortname" data-bind="value:ShortName" />
</td>
</tr>
<tr>
<td>
<span>Country </span>
<select data-bind="options: CountriesList,optionsText: 'CountryName',optionsValue:'CountryId',value:selectedChoice,optionsCaption: 'Select Country..'" style="width: 148px">
</select>
</td>
</tr>
<tr>
<td>
<input type="button" name="btnSubmit" value="Add" data-bind="click:Submit" />
<input type="button" name="btnReset" value="Reset" />
<span data-bind="text: selectedChoice" > </span>
</td>
</tr>
</table>
</div>
내 스크립트를
<script type="text/javascript">
(function() {
var countryModel = {
CountriesList: ko.observableArray([])
};
var countryViewModel = function() {
var self = this;
self.CountryModel = countryModel;
// self.validateCountry = ko.validation.group(self.CountryModel, { deep: true });
self.CountriesList = ko.observableArray([]);
self.selectedChoice = ko.observable();
}
var stateModel = {
StateId: ko.observable(0),
StateName: ko.observable('').extend({ required: true }),
ShortName: ko.observable('').extend({ required: true }),
IsActive: ko.observable(true),
CountryId: ko.observable()
};
var stateViewModel = function() {
var self = this;
self.StateModel = stateModel;
self.validateState = ko.validation.group(self.CountryModel, { deep: true });
self.StatesList = ko.observableArray([]);
//Handle Submit
self.Submit = function() {
if (self.validateCountry().length == 0) {
if (self.StateModel.StateId() > 0) {
self.UpdateCountry();
} else {
self.AddState();
}
self.Reset();
} else {
self.validateCountry.showAllMessages(true);
}
}
self.AddState = function() {
var args = JSON.stringify({ argBO: jQuery.parseJSON(ko.toJSON(self.StateModel)) });
ajax.Post("AddState.aspx/AddState", args, false).success(function (data) {
if (data.d[0] > 0) {
logger.success(data.d[1]);
}
else {
logger.error(data.d[1]);
}
});
}
self.Reset = function() {
var md = self.CountryModel;
md.CountryName('');
md.ShortName('');
md.IsActive(true);
md.CountryId(0);
self.validateCountry.showAllMessages(false);
}
};
var vm = new countryViewModel();
ajax.Get("AddCountry.aspx/getCountries", { IsActive: true }, false).success(function (data) {
vm.CountriesList(data.d);
});
ko.applyBindings(vm, document.getElementById("state_container"));
})();
</script>
내가 무엇입니까 문제는 디버그 모드에서 박히는되지 StateViewModel, 그리고이 종료 따라서 모든 시간 같은 StateModel는
을 정의되지 않은 일부 몸이 제발 도와주세요! 이해하는데 도움이 될만한 자료를 알려주십시오.