我在javascript文件中创建了一个控制器模块,
myController.js
(function () {
"use strict";
var app = angular.module("mymodule");
app.controller("MyController", ["$scope", "service",
function ($scope, service) {
$scope.doSomething = function(){
var element = service.getElement(1);
element.events.register("mouseover", element, function(){});
}
}
]);
)();
我在 index.html 文件中引用了以下内容。
<script src="js/lib/myController.js"></script>
我用状态来调用我的控制器模板。
app.config(["$stateProvider", function ($stateProvider) {
$stateProvider.state("myctrl", {
url: "/myctrl",
templateUrl: "templates/myctrl/myctrl.html",
controller: "MyController"
});
}])
我正在为 $ scope.doSomething 功能设置一个断点。当我启动应用程序时,断点停止了这一点。当我调用我的控制器模板url的url时,断点再次触发。所以我的活动注册了两次,事件发生了两次。
我认为控制器会产生两次或另一种问题。
解决方案:
答案 0 :(得分:1)
我查看了我的HTML并找出了问题所在。我的名为模板网址的href链接包含ng-controller =“MyController”,模板包含控制器。所以两次打电话。
答案 1 :(得分:0)
来自Angular Docs:
请注意,您还可以通过$ route服务在路由定义中声明控制器,从而将控制器附加到DOM。常见的错误是在模板本身中使用ng-controller再次声明控制器。这将导致控制器连接并执行两次。