我有一个像这样的模块:
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次,即使我没有加载指令页面......
这里的问题是什么原因我没有看到。谢谢
答案 0 :(得分:0)
您应该在州定义中使用ng-init
,而不是使用resolve
:
$stateProvider
.state('calendar', {
url: '/calendar',
templateUrl : 'http://localhost:8080/gestionprojet/dashboardCalendar',
title: 'Calendrier',
resolve: {
myEvents: function(eventFactory){
return eventFactory.getEvents();
}
}
})
然后 myEvents
将作为依赖项在您的控制器中可用。
答案 1 :(得分:0)
问题是我为状态和指令
设置相同的模板