【发布时间】:2014-02-18 15:12:08
【问题描述】:
我正在使用 angular-ui-router 构建一个 Angular 应用程序。后端有一个 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'
});
问题是我最终返回了一个承诺,而 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 api。
【问题讨论】:
标签: javascript angularjs promise angular-ui-router