從Grails的/ GSP自定義標籤轉換爲AngularJS指令轉換的Grails GSP定製標籤AngularJS指令
我有一個現有的Grails/GSP標記庫,將產生將由遠程服務器,加載內容顯示一個鏈接從本地服務器。鏈接中的URL必須是完整路徑。自定義的GSP標籤可讓我在GSP中指定正確的操作。我需要使用AngularJS來替換它,並且我明白指令是要走的路。是否有一種簡單的方法將參數從 GSP中的標籤傳遞給指令?
是在「grailsLinkGenerator」我可以用它來生成指令裏面的網址有同等功能?
我現有的Grails/GSP標籤看起來是這樣的:
GSP:
<g:myRemoteLink action="alpha" update="targetDiv" id="${ent.id}" >Show Alpha</g:myRemoteLink>
MyTagLib.groovy:
def myRemoteLink = { attrs, body ->
def link = g.remoteLink(attrs, body)
def fullLink = link.replace(grailsLinkGenerator.contextPath, grailsLinkGenerator.serverBaseURL)
out << fullLink.toString()
}
我需要將其轉換到負載/在像這樣的ng開關中顯示遠程內容:
<div ng-switch-when='alpha' ><div alpha-directive></div></div>
到目前爲止,我想出了這個指令,但必須有一個更好的辦法?有沒有像AngularJS中的grails鏈接生成器?我仍然需要將ID添加到URL中。
app.directive('alphaDirective', function() {
var id = $scope.id;
var baseURL = "https://myServerURL/";
var controller = "admin";
var action = "alpha";
var path = "'" + baseURL + "/" + controller + "/" + action + "/" + id + "'";
return {
template: "<div ng-include=\"" + path + "\"></div>"
};
});
你想傳遞什麼參數?我使用grails和angular,我想我可以幫忙,但我很難知道你想要生成什麼。 – tylerwal
它只需要從GSP中的select中傳入一個ID。基本上用戶正在選擇要顯示的內容。舊的純GSP代碼剛過就到自定義標籤的使用id = $ {} ent.id一個PARAM,但在新的AngularJS代碼,該ID是從一個輸入的到來,並且需要被附加到模板URL。我同意克里斯托弗的答案,它不好使javascript生成URL。我是AngularJS的新手。 – J21042