我有一个角度控制器。在控制器的开头,我想调用REST API来初始化一个对象。
我正在使用Angular $ Resource来完成它。
function () {
"use strict";
angular
.module("common.services")
.factory("hostAgentResource",
["$resource",
hostAgentResource]);
function hostAgentResource($resource) {
var brokerSvcUrl = "http://localhost:13898";
return $resource(brokerSvcUrl + "/api/HostAgent")
}
}());
hostAgentResource.query({ agentNicHash: vm.product.hostAgentNicHash }, function (data) {
vm.productDetail = data[0];
});
这是我的控制器签名
angular
.module("productManagement")
.controller("ProductEditCtrl",
["productResource",
"userResource",
"hostAgentResource",
"shareDataService",
"$state",
"$http",
ProductEditCtrl]);
function ProductEditCtrl(productResource, userResource, hostAgentResource,shareDataService, $state, $http) {
var vm = this;
if ($state.params["clientId"] >= 0) {
vm.product = shareDataService.getValue("currentProduct");
vm.title = "Edit:" + vm.product.hostName;
} else
{
vm.product = {};
vm.product.clientId = -1;
vm.title = "New Desktop";
}
hostAgentResource.query({ agentNicHash: vm.product.hostAgentNicHash }, function (data) {
vm.productDetail = data[0];
});
我的问题是,当我加载控制器时,不知何故,hostAgentResource.query被调用了4次。我只希望一次性调用初始化vm.productDetail。
是因为我注入了多个外部依赖项对象吗?