我是ASP.NET MVC開發人員。我是Knockout js的新手,目前我在應用程序中使用KO js。 Dropdownlist選擇更改(.subcribe)無法正常工作。請在下面找到我的代碼:.subscribe在我的ASP.NET MVC應用程序中不起作用
我的任務是:有三個下拉列表,我必須將數據綁定到第一個下拉列表的更改事件上的下一個下拉列表。 腳本:
var array_BankNames = JSON.parse(@Html.Raw(ViewBag.Banks));
var Bank = function() {
var self = this;
self.BankName = ko.observableArray(array_BankNames);
self.SelectedBank = ko.observable();
self.BankLocation = ko.observableArray();
self.SelectedLocation = ko.observable();
self.BankBranch = ko.observableArray();
self.SelectedBranch = ko.observable();
self.SelectedBank.subscribe = function() {
alert("Hi");
$.ajax({
url: '@Url.Action("GetBankLocations_Data")',
data: { Bankname: selectedValue },
type: 'GET',
success: function (data) {
self.BankLocation(data);
}
});
}.bind(self);
};
var BanksModel = function() {
var self = this;
self.Banks = ko.observableArray([new Bank()]);
self.addBank = function() {
self.Banks.push(new Bank());
};
self.removeBank = function (Bank) {
self.Banks.remove(Bank);
};
};
ko.applyBindings(new BanksModel());
HTML:
<div class="col-sm-9 col-md-8 controls">
<select data-bind="
options: BankName,
optionsValue: 'ID',
optionsText: 'Name',
value: SelectedBank">
</select>
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
@Html.LabelFor(model => model.BankLocation, new { @class = "col-sm-3 col-md-4 control-label" })
<div class="col-sm-9 col-md-8 controls">
<select data-bind="options: BankLocation,
optionsValue: 'ID', optionsText: 'Name', value: $root.SelectedLocation">
</select>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<div class="col-md-6">
<div class="form-group">
@Html.LabelFor(model => model.BankBranch, new { @class = "col-sm-3 col-md-4 control-label" })
<div class="col-sm-9 col-md-8 controls">
<select data-bind="options: BankBranch,
optionsValue: 'ID', optionsText: 'Name', value: SelectedBranch">
</select>
</div>
</div>
</div>
'.subscribe'應該可以正常工作。控制檯中有任何錯誤?讓我們知道。歡呼聲 – 2015-03-25 12:23:07
此參考顯示錯誤。所以刪除它。刪除該引用後,控制檯中沒有錯誤。 – 2015-03-25 12:29:48
由於沒有錯誤,現在訂閱解僱?如果不刪除所有引用(暫時),只需將jquery 1.9.js放置在開始和下一個knockout-3.2.0.js並執行即可。希望它能正常工作 – 2015-03-25 13:03:15