2016-11-20 39 views
0

我用.net Core和AngularJs + webApi製作簡單的程序 我的Api代碼如下 運行問題後沒有Js錯誤是工廠返回什麼都沒有。 當我設置斷點$ location.qwets = index.query();我的「qwets」爲空,「qwets」的長度爲0. 每次頁面刷新時get方法都在工作,但結果不起作用。AngularJs是空的列表

我改變了代碼,現在我有 'qwets' 的結果,但指數仍然是空的

謝謝

// GET: api/values 
    [HttpGet] 
    public IEnumerable<ApplicationUser> Get() 
    { 
     return new List<ApplicationUser> { 
      new ApplicationUser {Id="test", Email="[email protected]" }, 
      new ApplicationUser {Id="tst2",Email="[email protected]" } 

     }; 
    } 

app.js文件是

(function() { 
'use strict'; 

angular.module('saniehhaApp', [ 
    // Angular modules 
    //'ngRoute' 

    // Custom modules 
    "indexService" 
    // 3rd Party Modules 

]); 
})(); 
(function() { 
'use strict'; 

angular 
    .module('saniehhaApp') 
    .controller('indexController', indexController); 

indexController.$inject = ['$location', 'index']; 

function indexController($location, index) { 
    index.query() 
    .$promise.then(function (result) { 
    $scope.qwets = result; 
} 
})(); 
(function() { 
'use strict'; 
var indexService = angular.module('indexService', ['ngResource']); 

indexService.factory('index', ['$resource', 
    function ($resource) { 
    return $resource('/api/index/', {}, { 
     query: 
      { 
       method: 'GET', 
       params: {}, 
       isArray: true 
      } 
    }); 
}]); 
})(); 

和我的index.html文件

<!DOCTYPE html> 
<html ng-app="saniehhaApp"> 
<head> 
<meta charset="utf-8" /> 
<title>SampleTest</title> 

<script src="vendor/angular.min.js"></script> 
<script src="vendor/angular-resource.min.js"></script> 
<script src="vendor/angular-route.min.js"></script> 
<script src="scripts/app.js"></script> 
</head> 
<body ng-cloak> 
<div ng-controller="indexController"></div> 
<h2>list of users</h2> 
<ul> 
    <li ng-repeat="qwet in qwets"> 
     <p> "{{qwet.Id}}" - {{qwet.Email}}</p> 

    </li> 
</ul> 
</body> 
</html> 
+0

您可以檢查開發人員欄中的網絡選項卡,並查看API調用是否正在返回預期數據?可以將回複數據粘貼到問題中? – sabithpocker

+0

你所描述的是默認的'$ resource'行爲。請求是異步的,所以'$ resource'最初返回一個空數組,然後在請求完成時被填充。除非需要在數據到達時立即在控制器中執行某些操作,否則應該不會出現問題...視圖中的觀察者仍會更新像ng-repeat – charlietfl

+0

問題使用的是$ location而不是$ scope – charlietfl

回答

1

您正在控制器中使用$location而不是$scope來指定視圖中所需的屬性。視圖不會看到的東西$location

更改爲

function indexController($scope, index) { 
    /* jshint validthis:true */ 
    $scope.qwets = index.query(); 
} 

正如註釋上面提到,$資源開始會返回一個空數組(或對象)的實際請求完成時將隨後被填充當它到達HTML NG重複

也壞到底「格」沒有DIV控制器內部的觀察家會再更新視圖