我读过有关templateUrl的文档,它只需要$ stateParams作为函数参数,所以我检查了templateProvider,docs说它只能返回html视图('view.html')。
问题
我正在使用mvc 5而在templateUrl中我只是引用了我的mvc视图控制器。
但现在我想根据工厂解决的承诺动态选择模板。
结果是期望的视图是空的。我得到空视图,控制台很干净。
我检查了console.log($templateRequest('groupView/addNewGroup'));
的结果(上面的屏幕)
我得到了HTML,但我的观点是空的。
是否可以引用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;
},
}
},
});
答案 0 :(得分:0)
我只需要在checkPermission之前添加return,就像那样:
return checkPermission.checkPermission()
.then(...)..
现在,这一切都很有效。