2015-08-08 3 views
0

My $ routeProvider

.when('/student/tn/:Id', { 
      controller: 'transactioNoteCtrl', 
      templateUrl: function (e) { 
       return '/student/TransactionNotes/' + e.Id; 
      }, 
      title: "Student's Transaction and Note" 
     }) 

Для удаления кэша я использовал,

MakeApp.run(['$rootScope', '$templateCache', function ($rootScope, $templateCache) { 
    $rootScope.$on('$routeChangeStart', function (event, next, current) { 
     alert(current.templateUrl); 
     if (typeof (current) !== 'undefined') { 
      $templateCache.remove(current.templateUrl); 
     } 
    }); 

}]); 

Проблема, когда templateUrl содержит функцию $ templateCache.remove() не работает. Также я не могу использовать removeAll() из-за модуля пользовательского интерфейса Bootsrap.

+0

Какое значение имеет значение «current.templateUrl» в вашем предупреждении? – ilmgb

+0

Функция (e) { return '/ student/TransactionNotes /' + e.Id; } – AKASH

+0

Что такое прецедент для его удаления в первую очередь? Похоже, вы создаете динамические шаблоны на сервере. Не нужно отправлять идентификатор вместе с запросом шаблона. Я предполагаю, что у вас есть недостаток дизайна в вашем приложении – charlietfl

ответ

0

У меня есть мое временное решение. Я использовал глобальную переменную

var turl = ""; 

и теперь мой $ routeProvider, как

.when('/student/tn/:Id', { 
       controller: 'transactioNoteCtrl', 
       templateUrl: function (e) { 
       turl = '/student/TransactionNotes/' + e.Id; 
       return turl; 
       }, 
       title: "Student's Transaction and Note" 
      }) 

и Чтобы удалить кэш я использовал,

MakeApp.run(['$rootScope', '$templateCache', function ($rootScope, $templateCache) { 
    $rootScope.$on('$routeChangeStart', function (event, next, current) { 
     alert(current.templateUrl); 
     if (typeof (current) !== 'undefined') { 
      $templateCache.remove(current.templateUrl); 
      $templateCache.remove(turl); 
     } 
    }); 

}]); 

Это решить мою проблему. Спасибо ..

Смежные вопросы