У меня есть приложение AngularJS. Внутри этого приложения я пытаюсь загрузить кусок HTML с помощью специальной директивы. Моя директива (в app.js
) выглядит следующим образом:
app.directive('mytable', function() {
return {
restrict: 'E',
templateUrl: '/mytable'
};
});
В моем HTML файле (index.html
) я просто указываю пользовательский тег.
<mytable></mytable>
Детали реализации в mytable.html
- это всего лишь статический HTML. На стороне маршрутизации с Java Play у меня есть:
GET /mytable Application.mytable
И в моих контроллерах Play (Application.java
) у меня есть:
public static void mytable() { render(); }
Однако, когда я пытаюсь загрузить страницу, я получаю:
GET http://localhost:9000/mytable 500 (Internal Server Error)
XHR finished loading: GET "http://localhost:9000/mytable".
При ближайшем рассмотрении внутри консоли я вижу:
Template not found
The template Application/mytable.txt does not exist.
Как я могу исправить свой код? И почему он пытается отобразить mytable.txt
вместо mytable.html
, когда все мои другие контроллеры в Application.java
одинаковы и правильно отображают .html
файлы?
Просто примечание: http://localhost:9000/mytable
делает http://localhost:9000/mytable
статическое содержимое для <mytable>
.
Изменение: это относится только к Play версии 2.x
У меня такое ощущение, что ваш метод контроллера немного неправильный. Я бы переписал это
public static void mytable() { render(); }
чтобы:
public static Result mytable() {
ok(index.render());
}
где index
- ваш вид, render
- это метод, который вы вызываете для визуализации этого представления, и ваш контроллер возвращает Result
(с помощью метода ok()
)