加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 控制器启动两次

发布时间:2020-12-17 17:25:37 所属栏目:安全 来源:网络整理
导读:我有一个简单的控制器(logincontroller),在加载login.html时会启动两次,但我不知道为什么会这样. MyApp.js: angular.module('PVM',[ 'Authentication','Modal','ngRoute']).config([ '$routeProvider',function($routeProvider) { $routeProvider .when('/L
我有一个简单的控制器(logincontroller),在加载login.html时会启动两次,但我不知道为什么会这样.

MyApp.js:

angular.module('PVM',[
    'Authentication','Modal','ngRoute'
])
.config([
    '$routeProvider',function($routeProvider) {
        $routeProvider
            .when('/Login',{
                controller: 'LoginController',templateUrl: 'Login.html'
            })
            .when('/Home',{
                controller: 'ModalController',templateUrl: 'Home.html'
            })
            .otherwise({
                redirectTo: '/Login'
            });
    }
]);

LoginController.js:

angular.module("Authentication")
.controller("LoginController",[
    "$scope","$rootScope","$location","AuthenticationService",function($scope,$rootScope,$location,AuthenticationService) {
        AuthenticationService.ClearCredentials();

        $scope.login = function() {

            var foo = "bar"; //Breakpoint hits here twice when loading login.html
        };
    }
    ]);

index.html的:

<!DOCTYPE html>
<html ng-app="PVM">
<head>
<title>My Ang</title>
<link href="Content/bootstrap.min.css" rel="stylesheet" />
<link href="Content/bootstrap-theme.min.css" rel="stylesheet" />
<link href="Content/MyCss.css" rel="stylesheet" />
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1">

</head>
<body>
<div>
<div ng-view></div>
</div>


<script src="//code.jquery.com/jquery-2.0.3.min.js"></script>
<script src="Scripts/bootstrap.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0-beta.2/angular.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0-beta.2/angular-route.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0-beta.2/angular-animate.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0-beta.2/angular-cookies.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.14.3/ui-bootstrap-tpls.min.js"></script>


<script src="Scripts/Services/ModalService.js"></script>
<script src="Scripts/Services/AuthenticationService.js"></script>
<script src="Scripts/Controller/LoginController.js"></script>
<script src="Scripts/Controller/ModalController.js"></script>
<script src="Scripts/MyApp.js"></script>


</body>
</html>

的login.html:

<div class="container centeredDiv" ng-controller="LoginController">
    <p>Login page</p>
</div>

解决方法

因为你的控制器在2个地方执行.

>来自login.html – ng-controller

<div class="container centeredDiv" ng-controller="LoginController">
    <p>Login page</p>
</div>

>从与路线相关的控制器 – /登录

.when('/Login',{
   controller: 'LoginController',templateUrl: 'Login.html'
})

怎么修?您应该从login.html中删除ng-controller属性

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读