自从我上次看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/)
答案 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依赖!