我正在使用angular-ui-router构建一个角度应用程序.后端有一个REST api,它根据票证ID为我提供表单的URL.在app.js中,我想基于对此REST服务的查询动态设置模板.例:
$stateProvider .state('form', { url: '/form/:id', templateProvider: function ($resource, formResolver, $stateParams) { //formResolver calls the REST API with the form id and gets back a URL. return formResolver.resolve($stateParams.id).then(function(url) { return $resource(url).get(); }; }, controller: 'MyCtrl' });
问题是我最终返回了一个promise,而templateProvider需要一串内容.我想做的就是返回网址:
$stateProvider .state('form', { url: '/form/:id', //I would like to inject formResolver, but I can't templateUrl: function (stateParams, formResolver) { return formResolver.resolve(stateParams.id); }, controller: 'MyCtrl' });
但是根据https://github.com/angular-ui/ui-router/wiki#wiki-templates使用templateUrl而不是templateProvider时我没有得到依赖注入,我仍然有它返回一个promise的问题.我想也许我唯一的解决方案就是不使用promise api.