我有想要用作 AngularJS 模板的 app/assets/templates/api-list.haml。我按照本教程创建了一个 templates.js 文件,该文件将我编译的所有 Haml AngularJS 模板插入到$templateCache
. 但是,我似乎无法让这些缓存的模板与我的 AngularJS 路由一起使用:
api_app.config(['$routeProvider', ($routeProvider) ->
$routeProvider.when '/',
templateUrl: 'api-list'
controller: api_app.ApiListController
$routeProvider.otherwise
redirectTo: '/'
])
当我加载我的应用程序时,我在浏览器控制台中看到 404 错误,因为它试图向http://localhost:3000/api-list
. 我可以在浏览器中查看 /assets/templates.js 并看到它$templateCache.put("api-list"
已定义,因此应该有一个名为“api-list”的模板。在定义路由之前,我在我的页面中加载了 templates.js。
我也尝试像这样注入$templateCache
我的路由配置:
api_app.config(['$routeProvider', ($routeProvider, $templateCache) ->
$routeProvider.when '/',
template: $templateCache.get('api-list')
controller: api_app.ApiListController
$routeProvider.otherwise
redirectTo: '/'
])
但这会导致Uncaught TypeError: Cannot call method 'get' of undefined from ApiApp
错误。如果我将第一行更改为api_app.config(['$routeProvider', '$templateCache', ($routeProvider, $templateCache) ->
,则会收到错误消息Uncaught Error: Unknown provider: $templateCache from ApiApp
。
如何说服我的路线使用模板,$templateCache
而不是尝试通过新请求加载它?