Angular控制器中的重复REST API调用

时间:2015-08-15 17:10:07

标签: angularjs rest

我有一个角度控制器。在控制器的开头,我想调用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。

是因为我注入了多个外部依赖项对象吗?

0 个答案:

没有答案