Javascript Knockout.js:单击“绑定”仅在我第一次单击时有效?
Knockout.js中的函数存在一些问题。基本上,它是一个菜单,其中第一个菜单项“Översikt”应该获取JSON数组并填充视图 淘汰码:Javascript Knockout.js:单击“绑定”仅在我第一次单击时有效?,javascript,knockout.js,knockout-2.0,Javascript,Knockout.js,Knockout 2.0,Knockout.js中的函数存在一些问题。基本上,它是一个菜单,其中第一个菜单项“Översikt”应该获取JSON数组并填充视图 淘汰码: self.ongoingAuctions = ko.observableArray([]); self.getOngoingAuctions = function(data) { $.getJSON("assets/json/auctions.json", function(data) { self.ongoingAuctions
self.ongoingAuctions = ko.observableArray([]);
self.getOngoingAuctions = function(data) {
$.getJSON("assets/json/auctions.json", function(data) {
self.ongoingAuctions(data);
});
}
我的单击绑定:
<a href="#" data-bind="text: 'Översikt', click: function(){ setHeadline.bind($data,'Översikt'); getOngoingAuctions() }, css: { active: 'Översikt' == headline() }" class="lead"></a>
问题是,这只在我第一次单击菜单项时起作用。JSON不会在第二次、第三次、第n次获取
我做错了什么?还是我误解了什么
提前谢谢 我已经为您分享了这把小提琴,它显示了您的代码中有其他错误,您在问题中没有指定: 每次单击时,它都会调用不存在的json(在我的例子中)
它是进入getOngoingActions函数还是调用getJSON函数但返回缓存数据?当我查看控制台时,根本没有调用任何内容。嗨,谢谢你的回答。你是对的。还有别的问题,但我设法解决了。将更新此问题。
var viewModel = function(){
var self = this;
self.ongoingAuctions = ko.observableArray([]);
self.getOngoingAuctions = function(data) {
$.getJSON("assets/json/auctions.json", function(data) {
self.ongoingAuctions(data);
});
}
self.setHeadline = function(){
console.log('set headline')
}
self.headline = function(){
console.log('headline');
}
}
var myVm = new viewModel();
ko.applyBindings(myVm);