Шаблонная директива AngularJS с Java Play

0

У меня есть приложение 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>.

Теги:
playframework
angularjs-directive

1 ответ

0

Изменение: это относится только к Play версии 2.x

У меня такое ощущение, что ваш метод контроллера немного неправильный. Я бы переписал это

public static void mytable() { render(); }

чтобы:

public static Result mytable() { 
    ok(index.render()); 
}

где index - ваш вид, render - это метод, который вы вызываете для визуализации этого представления, и ваш контроллер возвращает Result (с помощью метода ok())

  • 0
    Он, вероятно, использует Play1.
  • 0
    @MonCalamari о да, это хороший момент

Ещё вопросы

Сообщество Overcoder
Наверх
Меню