【问题标题】:ngController method called twicengController 方法调用了两次
【发布时间】:2013-06-14 14:35:09
【问题描述】:

我的 index.html 页面中有一个带有导航栏的 angularjs 应用程序:

<div class="navbar navbar-inverse navbar-fixed-top" ng-controller="NavCtrl">
        <div class="navbar-inner">
            <div class="container">
                <ul class="nav">
                    <li>
                        <a href="#/">Home</a>
                    </li>
                    <li>
                        <a href="#/add">Add a contact</a>
                    </li>
                    <li>
                        <a href="#/users">Users</a>
                    </li>
                    <li>
                        <a href="#/agencies">Agencies</a>
                    </li>
                    <li>
                        <a ng-click="intro()">Help</a>
                    </li>
                </ul>
            </div>
        </div>
    </div>

这个 div 使用一个控制器,当我点击帮助链接时,它会调用我的控制器的 intro 方法。但是这个方法每次调用两次!!

这是我的控制器:

'use strict';

angular.module('myApp')
    .controller('NavCtrl', function ($scope, $location) {

        $scope.intro = function(){
            if($location.path() != '/'){
                toastr.warning("Warning.");
            }else{
                introJs().start();
            }
        }

    });

有什么想法吗?..

这是完整的html:

    <div class="navbar navbar-inverse navbar-fixed-top" ng-controller="NavCtrl">
        <div class="navbar-inner">
            <div class="container">
                <ul class="nav">
                    <li ng-class="navClass('')">
                        <a href="#/">Home</a>
                    </li>
                    <li ng-class="navClass('add')">
                        <a href="#/add">Add a contact</a>
                    </li>
                    <li ng-class="navClass('users')">
                        <a href="#/users">Users</a>
                    </li>
                    <li ng-class="navClass('agencies')">
                        <a href="#/agencies">Agencies</a>
                    </li>
                    <li>
                        <a ng-click="intro()">Help</a>
                    </li>
                </ul>
            </div>
        </div>
    </div>

    <div class="show-grid"></div>

   <div class="container">
        <div class="row" ng-view></div>
    </div>

【问题讨论】:

  • 你能做一个重现问题的小提琴吗?
  • 当我介绍 Angular 的客户端路由时,我也开始注意到两次调用的控制器介绍方法。从您的 URL 看起来您也在使用它,所以我想知道它是否相关。您粘贴的 sn-p 是否在 ng-View 指令中的任何位置?
  • 我已经编辑了帖子,我为所有带有 $routeProvider 的视图设置了 ng-view 指令。ng-controller 指令仅用于导航栏 ...
  • @Blackhole:对于小提琴我会尝试,但它有点复杂,因为我有一个 $routeProvider 很多控制器和许多局部视图,但我会尝试!
  • 根据您的代码我无法重现该问题,这是JSBin

标签: angularjs angularjs-scope angularjs-routing


【解决方案1】:

已解决:

有人(在我的项目中)添加了一个 angular.min 脚本文件...我们已经有了用于开发的 angular 文件...

两个角度核心库没有冲突当然只是方法调用了两次......

真的很抱歉,谢谢你们的回复

【讨论】:

    猜你喜欢
    • 2017-10-15
    • 2011-02-09
    • 1970-01-01
    • 2023-03-28
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    相关资源
    最近更新 更多