我有一个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
确实正确呈现<mytable>
的静态内容。
答案 0 :(得分:0)
编辑:这仅适用于Play版本2.x
我觉得你的控制器方法有点不对劲。我会改写这个
public static void mytable() { render(); }
为:
public static Result mytable() {
ok(index.render());
}
index
是您的视图,render
是您调用此视图的方法,您的控制器会返回Result
(通过ok()
方法)