当前位置: 首页 > 面试题库 >

AngularJs:使用$ routeProvider两次调用控制器

许俊晤
2023-03-14
问题内容

模块路线:

var switchModule = angular.module('switchModule', []);

switchModule.config(['$routeProvider', function($routeProvider) {
    $routeProvider.
    when('/build-content', {templateUrl: 'build-content.html', controller: BuildInfoController});
}]);

控制器:

function BuildInfoController($http, $scope){
    alert("hello");
}

HTML:

<html ng-app="switchModule">
...
<body>
    <ul>
        <li><a href="#build-content"/></a></li>
    </ul>
    <div class="ng-view"></div>
</body>
...

每次我单击超链接’‘时,“ BuildInfoController”将被调用两次。我在这里想念什么吗?


问题答案:

我遇到了同样的问题,并且似乎存在与路由有关的愚蠢错误。正在进行某种重定向。

为了解决这个问题,我在href中添加了一个斜杠,例如:

<li><a href="#/build-content/"></a></li>

我希望它也会为您解决问题。



 类似资料:
  • 问题内容: 我是angular js的新手,目前仍然遇到非常有线的bug。控制器中的函数在按路由加载视图调用时会运行两次。 http://jsfiddle.net/4gwG3/5/ 您将看到两次警报! 我的观点很简单 我的应用程序代码如下 问题答案: 首先检查您是否没有两次初始化Angular应用程序(通过使用 ng-app 自动进行初始化)。 一次,我有2个带有ng-app的html页面(一个用

  • 问题内容: 我是新手并尝试学习过滤器的概念,但在我的情况下是两次调用过滤器,我期望过滤器只运行一次,但运行两次。不能理解为什么会这样。 这是我的 朋克 … 问题答案: 如果我没有把你的问题弄错的话,这就是这里的问题 Angularjs 使用“脏检查”方法,因此需要调用所有过滤器以查看是否存在任何更改。此后,它检测到一个变量(您键入的变量)有变化,然后再次执行所有过滤器以检测是否有其他变化。 这是另

  • 问题内容: 我目前有一个内置路由的AngularJS应用,它与静态属性分配完美配合。但是我真正想做的是为控制器分配不同的路由: 我想做的是在这里对我的财产做同样的事情,例如: 但似乎我得到一个错误,说找不到 所以有什么办法可以在路由配置中动态加载控制器功能名称? 问题答案: 使用angular ui-router可以做到这一点。 ui-router允许您指定“ controllerProvider

  • 问题内容: 我了解AngularJS会在某些代码中运行两次,有时甚至更多,例如事件,不断检查模型状态等。 但是我的代码: 执行两次,将2条记录插入我的数据库。很显然,我一直在为此奋斗,我一直在学习! 问题答案: 应用路由器将导航指定为如下所示: 但我在: 这使控制器消化了两次。从HTML中删除属性可以解决此问题。或者,可以从路由指令中删除该属性。 使用选项卡式导航时也会出现此问题。例如,可能包含:

  • 我的应用程序后端使用Spring Boot,前端使用Angular JS。 我使用Thymeleaf来支持多语言。Thymeleaf要求将所有html文件放在名为templates的文件夹下。 在前端,我使用angular的routeProvider重定向页面。代码如下: 在java端,我的WebConfig中有一些ViewController代码。JAVA 登录页面可以工作,但对于仪表板,Ang

  • 问题内容: 我单击时有一个下面的按钮,显示一个小的弹出窗口,如通知 我的意图是每隔几秒钟显示一次此弹出窗口,而不用单击按钮,而是从AngularJS控制器显示。 尝试以下解决方案 还包括脚本 使用这样的指令 我看到一个错误“对象没有方法弹出窗口” 问题答案: 伪指令用于DOM操作: 和指令