Angularjs动态路由templateUrl更改

时间:2017-06-22 11:02:23

标签: angularjs asp.net-mvc dynamic routes angular-ui-router

我读过有关templateUrl的文档,它只需要$ stateParams作为函数参数,所以我检查了templateProvider,docs说它只能返回html视图('view.html')。

问题

我正在使用mvc 5而在templateUrl中我只是引用了我的mvc视图控制器。 但现在我想根据工厂解决的承诺动态选择模板。 结果是期望的视图是空的。我得到空视图,控制台很干净。 我检查了console.log($templateRequest('groupView/addNewGroup'));的结果(上面的屏幕) 我得到了HTML,但我的观点是空的。

link

是否可以引用mvc控制器而不是在templateProvider中返回'.html'file?

我的代码

.state('addNewGroup', {
    url: '/group/new',
    resolve: {
        isUserLoggedIn: function ($templateRequest, checkPermission) {
            checkPermission.checkPermission()
                .then(function (result) {
                    if (!result) {
                        return $templateRequest('groupView/login');
                    } else {                          
                      console.log($templateRequest('groupView/addNewGroup'))
                      return $templateRequest('groupView/addNewGroup');
                    }
                });
        }
    },
    views: {
        "leftPanel": {
            templateUrl: '/groupView/simpleLeftPanel',
            controller: 'simpleLeftPanelCtrl'

        },
        "content": {
            templateProvider: function (isUserLoggedIn) {
                return isUserLoggedIn;
            },
        }
    },
});

1 个答案:

答案 0 :(得分:0)

我只需要在checkPermission之前添加return,就像那样:

return checkPermission.checkPermission()
   .then(...)..

现在,这一切都很有效。