0

Knockout.js 中的函数存在一些问题。基本上它是一个菜单,其中第一个菜单项“Översikt”应该获取 JSON 数组并填充视图。

淘汰码:

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>

问题是这仅在我第一次单击菜单项时才有效。第二次、第三次、第 n 次未获取 JSON。

我究竟做错了什么?还是我误解了什么?

提前致谢!

4

1 回答 1

0

我已经为你分享了这个小提琴,它显示你的代码中还有一些你没有在问题中指定的错误:

每次单击时,它都会调用不存在的 json(在我的情况下)

JS Fiddle 到工作代码

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);
于 2013-04-08T20:33:24.267 回答