ng-init 函数被调用 1000 多次
ng-init function called 1000+ times
我有一个这样的 模块 :
angular.module('BlurAdmin.pages.calendar', [])
.config(routeConfig);
/** @ngInject */
function routeConfig($stateProvider, $urlRouterProvider) {
$stateProvider
.state('calendar', {
url: '/calendar',
templateUrl : 'http://localhost:8080/gestionprojet/dashboardCalendar',
title: 'Calendrier'
})
}
还有一个指令:
angular.module('BlurAdmin.pages.dashboard')
.directive('dashboardCalendar', dashboardCalendar);
/** @ngInject */
function dashboardCalendar() {
return {
restrict: 'E',
controller: 'DashboardCalendarCtrl',
templateUrl: 'http://localhost:8080/gestionprojet/dashboardCalendar'
};
}
还有一个控制器:
angular.module('BlurAdmin.pages.dashboard')
.controller('DashboardCalendarCtrl', DashboardCalendarCtrl);
/** @ngInject */
function DashboardCalendarCtrl(baConfig, $uibModal, $scope, eventFactory) {
/**
* Get Events
*/
$scope.getEvents = function () {
eventFactory.getEvents()
.success(function (data) {
$scope.userEvents = data;
$scope.userEvents = $scope.renderEventJSonToFullCalendar($scope.userEvents);
})
.error(function (data, status) {
console.log("fail : " + data);
$scope.errorMessage = "Erreur lors du chargement des évènements : " + data + ' ' + status;
})
};
}
并且在部分页面中,我在我的控制器中初始化函数:
<div ng-init="getEvents()">
<dashboard-calendar>
<div id='calendar' class="blurCalendar"></div>
</dashboard-calendar>
</div>
这里的函数被调用了 1000 次,即使我没有加载指令页面,它也在计数...
这里有什么问题,因为我没有看到。谢谢
与其使用 ng-init
,不如在状态定义中使用 resolve
:
$stateProvider
.state('calendar', {
url: '/calendar',
templateUrl : 'http://localhost:8080/gestionprojet/dashboardCalendar',
title: 'Calendrier',
resolve: {
myEvents: function(eventFactory){
return eventFactory.getEvents();
}
}
})
myEvents
将作为依赖项在您的控制器中可用。
问题是我为 state 和 directive
使用了相同的模板
我有一个这样的 模块 :
angular.module('BlurAdmin.pages.calendar', [])
.config(routeConfig);
/** @ngInject */
function routeConfig($stateProvider, $urlRouterProvider) {
$stateProvider
.state('calendar', {
url: '/calendar',
templateUrl : 'http://localhost:8080/gestionprojet/dashboardCalendar',
title: 'Calendrier'
})
}
还有一个指令:
angular.module('BlurAdmin.pages.dashboard')
.directive('dashboardCalendar', dashboardCalendar);
/** @ngInject */
function dashboardCalendar() {
return {
restrict: 'E',
controller: 'DashboardCalendarCtrl',
templateUrl: 'http://localhost:8080/gestionprojet/dashboardCalendar'
};
}
还有一个控制器:
angular.module('BlurAdmin.pages.dashboard')
.controller('DashboardCalendarCtrl', DashboardCalendarCtrl);
/** @ngInject */
function DashboardCalendarCtrl(baConfig, $uibModal, $scope, eventFactory) {
/**
* Get Events
*/
$scope.getEvents = function () {
eventFactory.getEvents()
.success(function (data) {
$scope.userEvents = data;
$scope.userEvents = $scope.renderEventJSonToFullCalendar($scope.userEvents);
})
.error(function (data, status) {
console.log("fail : " + data);
$scope.errorMessage = "Erreur lors du chargement des évènements : " + data + ' ' + status;
})
};
}
并且在部分页面中,我在我的控制器中初始化函数:
<div ng-init="getEvents()">
<dashboard-calendar>
<div id='calendar' class="blurCalendar"></div>
</dashboard-calendar>
</div>
这里的函数被调用了 1000 次,即使我没有加载指令页面,它也在计数...
这里有什么问题,因为我没有看到。谢谢
与其使用 ng-init
,不如在状态定义中使用 resolve
:
$stateProvider
.state('calendar', {
url: '/calendar',
templateUrl : 'http://localhost:8080/gestionprojet/dashboardCalendar',
title: 'Calendrier',
resolve: {
myEvents: function(eventFactory){
return eventFactory.getEvents();
}
}
})
myEvents
将作为依赖项在您的控制器中可用。
问题是我为 state 和 directive
使用了相同的模板