脚本在主控制器中激发两次
Script firing twice in Main Controller
我正试图在我的AngularJS应用程序中实现KonamiJS,当用户在键盘上点击Konami代码时,该应用程序会打开BootstrapUI模式对话框。脚本工作,但它已经启动了两次,我似乎不明白为什么。这就是我在主控制器中所拥有的,它将页面上的所有内容打包,以便可以从任何地方触发。在主控制器中,我还有一个角度视图:
<body ng-app="App" ng-controller="MainCtrl">
<div id="main-content" ng-view="" class="content"></div>
</body>
angular.module('App')
.controller('MainCtrl', function ($scope, $modal, $log) {
$scope.animationsEnabled = true;
var credits_page = new Konami();
credits_page.code = function() {
$modal.open({
animation: $scope.animationsEnabled,
templateUrl: 'views/credits.html',
controller: 'ModalInstanceCtrl'
});
console.log("Trigger");
}
credits_page.load();
});
然后我有一个模态控制器,它可以与对话:
angular.module('App')
.controller('ModalInstanceCtrl', function ($scope, $modalInstance) {
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
});
这里是我的脚本加载顺序:
<script src="scripts/app.js"></script>
<script src="scripts/controllers/main.js"></script>
<script src="scripts/controllers/modal.js"></script>
<script src="scripts/controllers/carousel.js"></script>
<script src="scripts/controllers/contact.js"></script>
<script src="scripts/particles.js"></script>
<script src="scripts/konami.js"></script>
我认为这与视图切换有关,但我无法确定到底是什么原因导致的。
您必须在$routeProvider
定义中提到MainCtrl
,所以基本上,您的MainCtrl
控制器会得到两次注册。
您需要从body标记中删除ng-controller="MainCtrl"
,这基本上看起来是多余的,因为它实例化了MainCtrl
两次。
检查您的模板和路线,您可能已经两次声明控制器
在模板中:ng controller="MainCtrl"
在路由中:控制器:'MainCtrl'
相关文章:
- MVC3 AJAX将数据传递给控制器.它's已提交两次
- AngularJS控制器中的函数只调用了两次[Phonegap应用程序]
- 角度 ui 路由器可选查询参数加载控制器两次
- 控制器函数使用 ng-show 调用两次
- 在angularjs中两次执行控制器的routeparams中的特殊字符
- Angular Js/ui-路由器/选项卡设置,控制器被调用两次
- AngulasJS、OnsenUI、Phonegap、警报在控制器内显示两次
- 若同一个控制器在一个页面中使用两次,则停止反映彼此的模型
- 脚本在主控制器中激发两次
- 角度控制器被调用两次
- 使用控制器调用service时获得两次结果
- AngularJS运行函数两次,尽管控制器只被初始化一次
- Url歧义导致UI路由器实例化控制器两次
- 为什么我的Angular.js控制器在下面的代码中执行了两次它的函数?
- 如何从两次或三次嵌套的ng-repeat作用域访问控制器的作用域
- Angular JS控制器被调用两次(ng-controller)
- 如果子控制器处于相同状态,则angular ui路由器-嵌套控制器-父控制器将启动两次
- 角度控制器调用了两次
- AngularJS控制器执行两次(不是因为路由器)
- 控制器内部的离子导航按钮触发两次