挖空可观察数组下拉绑定问题
Knockout ObserableArray dropdown binding issue
>我正在尝试在页面加载中从 restful 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 不知道更改并且不会通知视图。
相关文章:
- 使用AngularJS UI路由器时出现元素绑定问题
- 数据互绑定问题:转换器只运行一次,无法绑定元素的 ID
- 挖空和显示模块模式的数据绑定问题
- 使用大括号的 Internet Explorer 上的 AngularJS 数据绑定问题
- backbone.js绑定问题
- SAPUI5绑定问题:json文件中维护的列表项链接不起作用
- Angular JS(嵌套变量)中的绑定问题
- 谷歌地图的ng绑定问题
- jquery 中的事件绑定问题
- 挖空可观察数组下拉绑定问题
- 承诺,然后绑定问题
- 复杂数据和自动完成的绑定问题
- 在 if 语句中淘汰奇怪的绑定问题
- 角度形式绑定问题
- fancyboxjquery关于gridview的templete字段绑定问题
- angularjs数据绑定问题
- ngRepeat中的AngularJS绑定问题(折叠和展开Caret)
- 淘汰数据绑定问题
- 使用 IE 11 和 AngularJS 的 2 路数据绑定问题
- CasperJS绑定问题