[英]Knockout ObserableArray dropdown binding issue
我正在尝试从页面加载中的静态wcf服务中获取数据,并绑定至无法正常工作的下拉列表。
function CreateItem(name, value) {
var self = this;
self.itemName = ko.observable(name);
self.itemValue = ko.observable(value);
};
function AppViewModel() {
var self = this;
self.titleList = ko.observableArray();
self.load = function () {
alert("click fired");
$.ajax({
url: "https://mydomain/RestfulService/Service1.svc/CreateData?name=venkat",
type: "POST",
cahce: false,
async: false,
data:'',
dataType: "jsonp",
success: function (data) {
for (var i = 0; i < data.length; i++) {
self.titleList().push(new CreateItem(data[i].Description, data[i].TitleID));
}
alert("success " + data);
},
error: function (error) {
alert("failed " + error);
}
});
};
};
<div>
<select data-bind="options: titleList(), optionsText: 'itemName', optionsValue: 'itemValue', value: selectedTitleValue, optionsCaption: 'Please choose'"></select>
</div>
<script type="text/javascript">
$(document).ready(function() {
var model = new AppViewModel();
model.load();
ko.applyBindings(model);
});
</script>
问题是,敲除数组正确地在加载函数中填充,但下拉列表却没有刷新更新的数据。 我不明白问题出在哪里。 请输入。
更换:
self.titleList().push(new CreateItem(data[i].Description, data[i].TitleID));
同
self.titleList.push(new CreateItem(data[i].Description, data[i].TitleID));
原因是self.titleList()
返回基础数组 ,当您向其推送数据时,Knockout不知道更改,并且不通知视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.