requirejs + angularjs + resolve,控制器已加载但未执行

时间:2016-01-28 12:05:47

标签: angularjs requirejs

我正试图以这种方式动态加载控制器:

.state('main', {
   url:'/app',
   data: {requireLogin:true },
   views:{
    '':
     angularAMD.route({
      templateUrl:function (){ var token=$cookies.get('token'); return '/getTemplate/'+token+'/main'; },
      controller:''
     }),
    'main.content@main':
     angularAMD.route({
      templateUrl:function (){ var token=$cookies.get('token'); return '/getTemplate/'+token+'/main.content'; },
     // controller:'main.content',
      resolve: { load: ['$q', '$rootScope', '$cookies',function ($q, $rootScope, $cookies) { var controller_name='main.content.js'; return loadControllerWithToken($q,$rootScope,$cookies,controller_name);}]}
     }),

控制器已加载(我在chrome上从网络面板核对)但未“执行”,因此其中的console.log未被调用。

这是控制器:

define(['app','services/JSONService.js'], function (app) {
console.log("here");
app.register.controller('main.toolbar', function ($scope, $rootScope,$state,$mdSidenav,$location,JSONService,$cookies) {
 console.log("main.toolbar");

 $scope.toggleSidenav = function(menuId) {
    $mdSidenav(menuId).toggle();
  };

 $scope.openLink=function(url){
  $scope.toggleSidenav('left');
  if (url.substring(0, 7) == "http://")
  {
   $window.location.href = url;
  }
  else
  {
   $location.path(url);
  }
 };

 var token=$cookies.get('token');

 console.log("get partial");
 $scope.partial_url="/getPartial/"+token+"/menu-bar";

});

});

我缺少什么?

谢谢, 的Riccardo

0 个答案:

没有答案