我是Angular的新手。我有一個簡單的網頁,但控制器的代碼不起作用。看來我沒有正確地在控制器中調用或注入服務「ListLogsFactory」。請幫忙。謝謝。向控制器注入服務
我的代碼包括模塊,服務和控制器的所有聲明/定義如下:
var myApp = angular.module("ListLogsModule", []);
myApp.factory('ListLogsFactory', function ($http) {
var thisPageNumber = 1;
var thisPageSize = 10;
var baseUrl = '../Api/LogApi/GetLogsByPage';
var items = {};
$http({
method: 'GET',
url: baseUrl,
data: $.param({ pageNumber: thisPageNumber, pageSize: thisPageSize })
})
.success(function (data, status, headers, config) {
items = data;
console.log(items);
})
.error(function (data, status, headers, config) {
alert('error: ' + status);
});
function getData() {
return items;
}
});
// The error is seen in FireFox and happens in the controller code:
myApp.controllers.ListLogsController = function ($scope, ListLogsFactory) {
$scope.logs = ListLogsFactory.getData(); // NOTE: this line throws error on running with something like "ListLogsFactory" is undefined
}
感謝您的回答。我在「服務」中應用了定義公共方法的方法,並且「ListLogsFactory未定義」的錯誤已經消失。但是,我看不到我的視圖頁面中的數據綁定。如何在控制器中使用「承諾」,以便數據綁定被推遲到從遠程服務器返回的數據準備好之前?在服務器端日誌中,我確實看到API RESTful方法已被調用並返回數據。 –
可能是這樣的http://markdalgleish.com/2013/06/using-promises-in-angularjs-views/簡單的方法是在'$ routeProvider'中使用控制器並使用'resolve' –