2015-07-01 101 views
0

我有一個AngularJS應用程序。在該應用程序中,我試圖用自定義指令加載一段HTML。我的指令(在app.js)如下:AngularJS模板指令與Java播放

app.directive('mytable', function() { 
    return { 
     restrict: 'E', 
     templateUrl: '/mytable' 
    }; 
}); 

在我的HTML文件(index.html)然後,我就指定自定義標籤。

<mytable></mytable> 

mytable.html中的實現細節只是靜態HTML。在與Java播放路由方面,我有:

GET  /mytable    Application.mytable 

我的播放控制器(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

檢查Play console 500 - 這是一個服務器錯誤。 –

+0

這確實是一個服務器錯誤。但考慮到我上面寫的代碼,問題會是什麼?我是否指定路由不正確? –

回答

0

編輯:這僅適用於播放版本2.x

我有一種感覺,你的控制器的方法是有點不對勁。我想改寫這個

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

到:

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

其中index是你的看法,render是你打電話來渲染這個觀點的方法,和你的控制器返回一個Result(通過ok()方法)

+0

他可能使用Play1。 –

+0

@MonCalamari哦,是的,這是一個好點 – Anton