我来自这个问题Is it possible to load a template via AJAX request for UI-Router in Angular?
我希望使用state
加载给定$http
的模板。
ui.router个文档显示了在$timeout
个配置中使用$http
和$stateProvider
的示例,例如
或者您可以使用可以注入的模板提供程序功能 访问本地,并且必须返回模板HTML,如下所示:
$stateProvider.state('contacts', { templateProvider: function
($timeout, $stateParams) {
return $timeout(function () {
return '<h1>' + $stateParams.contactId + '</h1>'
}, 100);
}
})
但是,据我了解,$stateProvider
必须在module.config
阶段进行配置,$timeout
不可用。我找不到任何示例,说明如何根据docs提供的示例完全访问$timeout
(或$http
){/ 1}}。
是否有办法访问文档中定义的$stateProvider
或$timeout
?我是否在另一个点配置状态?有没有其他方法可以做到这一点,我忽视了?
答案 0 :(得分:2)
templateProvider
函数本身使用注入服务注入依赖项,它与配置阶段无关。
所以你应该只需要在函数中注入$http
即可。如果您看到该示例,则$timeout
或$stateParams
在配置阶段也不可用,但它们在templateProvider
函数中正常工作。
例如,以下代码段会返回HTTPBin的内容:
templateProvider: function($http) {
return $http.get('https://httpbin.org/get')
.then(function(response) {
return JSON.stringify(response.data);
});
}
有关详细信息,请参阅this fiddle。