【问题标题】:Angular $http appears to make two server callsAngular $http 似乎进行了两次服务器调用
【发布时间】:2015-10-03 02:23:24
【问题描述】:

我正在使用 Angulars $http 来调用我的后端服务。但是,我无法弄清楚为什么 UI 似乎对我的服务进行了两次调用。我像这样使用 ui-router 导航到 Angular 部分

$stateProvider.state('new/client', {
        url: '/client/new',
        templateUrl: globalContextPath + '/javascripts/partials/modals/client/new.html',
        controller: 'NewClientModalController'
    })

在我的部分和控制器中,我初始化了一些数据。

var vm = this;

var retrieveServers = function () {
    AppServerFactory.list()
        .then(function (success) {
            $log.debug(success);
            vm.appServerList = success.data;
            for (var i = 0; i < vm.appServerList.length; i++) {
                if (vm.appServerList[i].defaultItem == true) {
                    vm.clientServers.push(vm.appServerList[i]);
                }
            }
        });
};

retrieveServers();

工厂函数本身

factory.list = function () {
    return $http.get(globalContextPath + '/api/app-server/list');
};

版本控制:

"dependencies": {
    "angular": "angularjs#~1.4.6",
    "angular-ui-router": "~0.2.15",
    "bootstrap": "~3.3.5",
    "jquery": "~2.1.4"
}

我尝试过仅从我的控制器中使用 $http 的路线,但似乎无论我在整个应用程序中的哪个位置使用 $http,所有调用都会加倍到我的后端 - 通过查看我的休眠查询可以观察到这一点当前端访问我的后端服务时,总是运行两次。我相信通过使用肥皂客户端而不观察相同的行为已经排除了后端。我目前的怀疑点 - 如果我在我的函数中放置一个断点,似乎控制器被加载了两次。我目前正在调查我是否错误地使用了 ui-router 但还没有运气。想知道在我继续绊倒时是否有人有提示。

【问题讨论】:

  • 请发布您的模板代码。
  • 你可能已经在你的模板 new.html 中声明了 ng-controller="NewClientModalController"

标签: angularjs angular-ui-router


【解决方案1】:

当我第一次开始使用 ui-router 时,我也遇到了这个问题,因为我在路由和 HTML 中明确定义了控制器。您是否也有机会在 HTML 中定义它?

【讨论】:

  • 哎呀——就是这样!谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-02-20
  • 2015-04-07
  • 1970-01-01
  • 2014-01-08
  • 2017-04-24
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多