Angular.js简单从ASP.NET控制器获取对象

时间:2015-05-29 02:02:58

标签: asp.net json angularjs

自从我上次看Angularjs以来已经有一段时间了。我有一个简单的get,它调用一个ASP.NET控制器并返回一个Json对象 - 触发了get,但是在视图中没有填充任何内容。 Json对象在浏览器中显示,因此它纯粹是一个JS Angular的东西。我知道我错过了一些简单的东西,但我不能完全指责它。如果有人愿意表现出我失去的东西,最好有一个很好的例子。我还没有找到一个类似的简单例子。

Angularjs。

var ngCurrent = angular.module("ngCurrent", ['ngResource']);
var ctrCd;
// Declaring a Service
ngCurrent.factory("CurrentService", function ($resource) {
    return {
        data: $resource("/Current/Data/:id")
    }
});

ngCurrent.controller("CurrentController", function ($scope, CurrentService) {
    $scope.current = CurrentService.data.get({ "id": id}, isArray = false);
});

在CSHTML视图中(包括Condensed但包含所有相关行)

<div ng-app="ngCurrent" class="row">
    <div ng-controller="CurrentController" class="col-md-1"></div>
        <div class="row">
            <span class="col-sm-2">{{current.RecordName}}</span>

它会触发&#34; Get&#34;来自控制器,但不显示任何数据,$scope.current不包含任何对象。

我在JSFiddling没有成功,这里是http://jsfiddle.net/Mark_Dete/Lfy66re1/1/

(注意Json模拟基于http://jsfiddle.net/ExpertSystem/6PYsq/

1 个答案:

答案 0 :(得分:2)

您可以通过以下服务退回承诺:

    return $http({
      url: '/api/v1/service/',
      method: "GET",
      headers: {'X-API-TOKEN': api_key },
      params: _params
    })

然后在控制器中的http对象上使用promise回调(从服务返回的那个)

$scope.getApiData = function(){
  Service.getData($scope.api_key)
  .then(function(_data) {
    console.log(_data.data); 
    $scope.data_obj = _data.data;
  });

这是一个没有服务抽象的一体化版本,但它应该用于测试。

 $scope.getApiData = function(){
  $http({
      url: '/api/v1/service/',
      method: "GET",
      headers: {'X-API-TOKEN': api_key },
      params: _params
   })
  .then(function(_data) {
    console.log(_data.data); 
    $scope.data_obj = _data.data;
  });

确保你记得注入$ http依赖!