看看这个显示问题的简单回购: https://github.com/juanmarinbear/app
使用此templateProvider函数时:
function template() {
return '<div data-ng-include=\"\'/app/home/home.html\'\"</div>';
}
模板加载没有问题。
使用此templateProvider函数时:
function templateBreaks($timeout) {
return $timeout(function() {
return '<div data-ng-include=\"\'/app/home/home.html\'\"</div>';
});
}
模板无法加载,控制器无法实例化。没有显示错误。
答案 0 :(得分:3)
通过添加:
尝试正确注入$timeout
依赖项
templateBreaks.$inject = ['$timeout'];
这应该可以解决问题。
您的代码似乎可以在AngularJS 1.2或更低版本中正常工作(因此它适用于Plnkr)但是从AngularJS 1.3开始,似乎需要显式依赖注入。
希望有所帮助!
答案 1 :(得分:0)
我猜这是一个同步问题,因为$ timeout服务返回一个promise,而non-timeout版本返回一个字符串。
你可以“等待”然后返回字符串。
答案 2 :(得分:0)
技术上与上述相同的最终解决方案,但如果您查看Sample App,它还会显示您可以使用其他语法:
templateProvider: ['$timeout', templateBreaks],