首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java Play中的AngularJS模板指令

Java Play中的AngularJS模板指令
EN

Stack Overflow用户
提问于 2015-07-01 22:50:50
回答 1查看 155关注 0票数 0

我有一个AngularJS应用程序。在该应用程序中,我尝试使用自定义指令加载一段HTML。我的指令(在app.js中)如下:

代码语言:javascript
复制
app.directive('mytable', function() {
    return {
        restrict: 'E',
        templateUrl: '/mytable'
    };
});

然后,在我的超文本标记语言文件(index.html)中,我只指定了定制标记。

代码语言:javascript
复制
<mytable></mytable>

mytable.html中的实现细节只是静态超文本标记语言。在Java Play的路由方面,我有:

代码语言:javascript
复制
GET     /mytable                Application.mytable

在我的播放控制器(Application.java)中,我有:

代码语言:javascript
复制
public static void mytable() { render(); }

然而,当我尝试加载一个页面时,我得到:

代码语言:javascript
复制
GET http://localhost:9000/mytable 500 (Internal Server Error) 
XHR finished loading: GET "http://localhost:9000/mytable".

经过仔细检查,在控制台中,我看到:

代码语言:javascript
复制
Template not found 
The template Application/mytable.txt does not exist.

我如何修复我的代码?当我在Application.java中的所有其他控制器都是相同的,并且正确地呈现.html文件时,为什么它要尝试呈现mytable.txt而不是mytable.html

顺便说一句:http://localhost:9000/mytable确实正确地为<mytable>呈现了静态内容。

EN

回答 1

Stack Overflow用户

发布于 2015-07-01 23:04:14

编辑:这只适用于播放版本2.x

我有一种感觉,你的控制器的方法有点错误。我会重写这段代码

代码语言:javascript
复制
public static void mytable() { render(); }

至:

代码语言:javascript
复制
public static Result mytable() { 
    ok(index.render()); 
}

其中index是您的视图,render是您调用以呈现此视图的方法,并且您的控制器返回一个Result (通过ok()方法)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31164744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档