删除$ templateCache当$ routeProvider的templateUrl包含函数时

时间:2015-08-08 10:17:26

标签: angularjs

我的$ routeProvider

userListTableViewCell

删除我用过的缓存

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

问题是,当templateUrl包含函数$ templateCache.remove()不起作用时。另外,由于UI Bootsrap模块,我无法使用removeAll()。

1 个答案:

答案 0 :(得分: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);
        }
    });

}]); 

这解决了我的问题。感谢..