【发布时间】:2014-05-05 19:43:20
【问题描述】:
我从 Angular 调用 REST 服务,它总是调用工厂两次。这是工厂代码。
app.factory('dataFactory', ['$http', function ($http) {
var urlBase = '/api';
var dataFactory = {};
dataFactory.getMyItems = function () {
return $http.get(urlBase + '/MyItems');
};
return dataFactory;
} ]);
这里是从控制器调用的
app.controller('MyItemsController', ['$scope', 'dataFactory',
function ($scope, dataFactory) {
$scope.myItems;
getItems();
function getItems() {
dataFactory.getMyItems()
.success(function (itemsData) {
$scope.myItems = itemsData;
})
.error(function (error) {
$scope.status = 'Unable to load items data: ' + error.message;
});
}
}
]);
【问题讨论】:
-
如果您的控制器被实例化两次,就会发生这种情况。将 console.log 作为控制器函数的第一行并查看控制台输出。
-
@Chandermani 控制器被实例化了两次。我找不到在哪里,它在视图中只被引用一次
data-ng-controller="MyItemsController" -
检查您的 routeProvider 配置。搜索字符串
MyItemsController -
@Chandermani 我从 routeProvider 中删除了它,它不会调用两次。当我从
data-ng-controller视图中删除它时,它仍然调用了两次。正确的做法是什么? -
同时检查你是否没有在
index.html中包含两次angular.js和<controller.js>文件。我曾经遇到过这个问题。
标签: angularjs