角度控制器触发不止一次.只有某些
Angular Controllers Firing off more than once. Only certain ones
我有如下标记,然后在不同的文件中定义了应用程序的不同部分。我遇到的问题是,加载时主应用程序页面上的控制器会导致每个嵌套控制器运行不止一次。我只需点击按钮就可以更改为任何状态,但每个状态都会触发2-3次。
<html ng-app="myApp">
<body ng-controller="myController">
<div ng-controller="dashController">
<div ng-controller="listController">
</div>
</div>
</body>
</html>
我的App.js
var myApp = angular.module('myApp', [
'user.profile',
'myApp.controllers',
'myApp.directives',
'ngCookies',
'ngAutocomplete',
'ui.router'
]).config(function($stateProvider, $urlRouterProvider, $locationProvider, $interpolateProvider) {
$interpolateProvider.startSymbol('{[{').endSymbol('}]}');
$urlRouterProvider.otherwise('/');
$stateProvider.
state('app', {
url: '/app',
templateUrl: '/views/homepage',
controller: 'MyCtrl1'
});
$locationProvider.html5Mode(true);
});
myApp.控制器
angular.module('myApp.controllers', ['ui.router','ngCookies']).
controller('myController', function ($scope, $http,$cookies) {
$scope.message = 'nothing to see here, move along';
if ($cookies.userdata) {
$cookies.userdata = $cookies.userdata.replace("j:", "");
console.log($cookies);
}
});
user.profile.js
angular.module('user.profile', [
'user.controllers',
'ngAnimate',
'ngCookies',
'ngResource',
'ngSanitize',
'nouislider',
'ui.router',
'ui.bootstrap',
'ngLinkedIn'
])
.config(function($stateProvider, $urlRouterProvider, $locationProvider,$interpolateProvider, $linkedInProvider) {
$interpolateProvider.startSymbol('{[{').endSymbol('}]}');
$linkedInProvider.set('appKey', '753pos06f998t3')
.set('scope', 'r_fullprofile');
//.set('authorize', true);
$locationProvider.html5Mode(true);
$stateProvider
.state('userDashboard', {
controller: 'dashController'
})
.state('userList', {
views : {
'popup' : {templateUrl: '/views/app/user/list/userList'}
},
controller: 'listController'
});
});
user.controllers.js
angular.module('user.controllers', ['ui.router', 'ngAutocomplete', 'nouislider', 'ui.bootstrap', 'ngCookies', 'ngLinkedIn', 'angularFileUpload','cgPrompt'])
.directive('onLastRepeat', function () {
return function (scope, element, attrs) {
if (scope.$last) setTimeout(function () {
scope.$emit('onRepeatLast', element, attrs);
}, 1);
};
}).
controller('dashController', function ($scope, $state, $modal, $log, $http, $cookies) {
$scope.user = [];
}).
controller('listController', function ($scope, $http, $cookies) {
});
我的应用程序也不会初始化,除非我运行angular.bootstrap(document,["myApp"]);
我不认为它在$stateProvider和DOM中定义了控制器。。。如果我从DOM中删除,即使在控制器启动后,ng的单击也不会起作用。。。我还有一个ng点击,它改变了状态,它的控制器在stateProvider和DOM中定义,它不会触发两次。。。它所做的是先再次启动另外两个控制器,然后再继续它的操作。
问题是您使用routeProvider/stateProvider定义控制器,即:
$stateProvider.state('userDashboard', {
controller: 'dashController'
})
.state('userList', {
views : {
'popup' : {templateUrl: '/views/app/user/list/userList'}
},
controller: 'listController'
});
您正在使用在DOM中重新定义它们
<div ng-controller="dashController">
删除其中一个,但不要同时使用这两个,我建议删除DOM中声明的那个,ng-controller="dashController"
欢呼
相关文章:
- KnockoutJS绑定每个文档不止一次
- 控制不止一次跳水的风格's风格使用java脚本动态,使用类
- 随机图像显示不止一次
- XMLhttpRequest Ajax PHP 运行不止一次
- 看起来我的每个循环都循环不止一次
- 骨干 js 模型 保存不止一次
- Javascript,Socket.io - 警报出现不止一次
- 阿贾克斯不止一次打电话
- 我怎样才能防止这种“点击”发生不止一次
- chrome扩展///我的代码运行了不止一次
- 角度控制器触发不止一次.只有某些
- 如何将一个字符算作一个字符,即使它出现不止一次
- 为什么"结束”;音频html5的事件触发不止一次
- jQuery函数,每10秒从客户端调用一次控制器方法mvc剃刀
- 不要做不止一次,要做一段时间,但不要做
- noitification创建的chrome扩展api没有;不要出现不止一次
- 如何使用Jquery/JavaScript使此图像滑块在单击时滑动不止一次
- 为什么可以't我使用HTML5音频标签播放声音不止一次
- 我如何调用setInterval不止一次
- 在ASP中AJAX加载了PartialView.. NET MVC -脚本运行不止一次