У меня есть приложение/активы/шаблоны/api-list.haml, которые я хочу использовать в качестве шаблона AngularJS. Я последовал за this tutorial, чтобы создать файл templates.js, который вставляет все мои скомпилированные шаблоны Haml AngularJS в $templateCache
. Тем не менее, я не могу показаться, чтобы сделать эти кэшированные шаблоны работать с моим AngularJS маршрутов:Как использовать маршруты AngularJS с шаблонами Haml в приложении Rails
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
вместо того, чтобы загружать его с помощью нового запроса?
Вы можете просто сделать файл 'routes.js.coffee.erb', чтобы использовать coffeescript, а также использовать помощник rails –