如何将json数据绑定到angularjs控制器变量

时间:2017-03-08 14:19:36

标签: angularjs json

Json Data

   {
  "TotalRecordCount": 50,
  "Results": [
    {
      "TestId": 5002,
      "TestName": "Test 01/05/2016"
    }
  ]
}

我的服务

 function getTestSchedule() {
        var deferred = $q.defer();

        $http.get(TestAppConfig.TestApiRoot + "/Tests/gettestschedule/").then(function (response) {
            deferred.resolve(response);
        }, function (resp) {
            deferred.reject(resp);
        });

        return deferred.promise;
    };

我的控制器代码

TestVm.test = TestModel.getTestSchedule;

所以这里控制器正在对web api进行http调用,而不是http调用如何用上面的json数据绑定页面

1 个答案:

答案 0 :(得分:2)

我不确定我是否理解你的问题,但你为什么不这样做:

TestModel.getTestSchedule().then(function(result) { TestVm.test = result; });

也许您必须将result替换为result.data。此外,你的服务有点奇怪,你为什么不这样做:

function getTestSchedule() {
    return $http.get(TestAppConfig.TestApiRoot + "/Tests/gettestschedule/");
};

您的代码只会创建一个Promise模仿$http.get返回的代码,因此您只需返回$http.get中的一个。

修改

请参阅此plunker:http://plnkr.co/edit/5IqDNDoN4ewb5klKnzeU

编辑2

最后,根据下面的讨论,预期的答案很简单:

TestVm.test = { 
    "TotalRecordCount": 50, 
    "Results": [ ... ] 
}