麻烦从Javascript中读取json文件

时间:2014-07-18 18:29:42

标签: javascript jquery ajax json mvvm

我对ajax和json几乎一无所知。现在我正在尝试将来自dealerData.json的数据读入我的MVVM viewModel,并且'data'继续以未定义的形式返回。

$(function () {
    var obj;
    $.ajax({
        dataType: "json",
        url: "/Scripts/dealerData.json",
        success: function (data) {
            obj = JSON.parse(data);            
        }
    });

    ko.applyBindings(DealerNumberLotNumberViewModel(obj));
});

2 个答案:

答案 0 :(得分:1)

试试这样:

  $(function () {
        var obj;
        $.ajax({
            dataType: "json",
            url: "/Scripts/dealerData.json",
        })
            .done(function (data) {
                obj = JSON.parse(data);
                ko.applyBindings(DealerNumberLotNumberViewModel(obj));
            });
    })

答案 1 :(得分:0)

ko.applyBindings(DealerNumberLotNumberViewModel(OBJ)); - 这应该进入回调方法,尽管如此 -

$(function () {
var obj;
$.ajax({
    dataType: "json",
    url: "/Scripts/dealerData.json",
    success: function (data) {
        obj = JSON.parse(data);
        ko.applyBindings(DealerNumberLotNumberViewModel(obj)); 

    }
});

因为obj未定义,直到回调方法"成功"实际上分配了一些东西。一旦定义了obj,就应该执行ko.applyBinding方法。因此,它应该进入回调方法。

此外,最好始终使用故障回调方法,以便任何故障都不会被删除。

$(function () {
var obj;
$.ajax({
    dataType: "json",
    url: "/Scripts/dealerData.json",
    success: function (data) {
        obj = JSON.parse(data);
        ko.applyBindings(DealerNumberLotNumberViewModel(obj)); 

    },
    error: function(args) {
     console.log('error occured: '+ args);
    }
});

希望,这有帮助