2017-02-14 80 views
0

我採用了棱角分明的js和freemarker的一起,在模板中,我寫了<a>標籤,其href ATTR與#開始,所以我可以在配置路線的角度,如:逃生#{{}}

<a href="#/edit/user"> 

但與寫作模板angularJS模板時,似乎有一些矛盾(與freemarker的語法和angularJS模板語法一起):

<li ng-repeat="tab in tabs"> 
    <a href="#{{tab.url}}"> {{tab.title}} </a> 
</li> 

,如果我寫的像Freemarker模板上面會失敗,並解析此異常:

freemarker.core.ParseException: Parsing error in template "mis/newindex.ftl" in line 21, column 80: 
Encountered "}", but was expecting one of: 
    "," 
    ":" 
    "." 
    "[" 
    "(" 
    "?" 
    "!" 
    <TERMINATING_EXCLAM> 
    "??" 
    "+" 
    "-" 
    "*" 
    "/" 
    "%" 
    "!=" 
    "=" 
    "==" 
    ">=" 
    <ESCAPED_GTE> 
    ">" 
    <ESCAPED_GT> 
    <LESS_THAN_EQUALS> 
    <LESS_THAN> 
    ".." 
    <AND> 
    <OR> 

我知道#{{tab.url}}應該是一個引起問題,但我怎麼能繞過這個問題?


我已經通過這個由角控制器添加一個方法來構建具有#

function completeUrl(url){ 
    return '#' + url; 
} 

<a href={{completeUrl(tab.url)}}> {{tab.title}} </a> 

但儘管如此,我想找到一個更好的解決方案爲前綴的網址。

+0

@bipinpatel感謝答覆,但我不知道如何創建一個plunkr與'freemarker',它更像是一個FreeMarker的問題 – armnotstrong

+0

@bipinpatel http://pastebin.com/tVU9SEQE – armnotstrong

回答

2

這是一個不幸的衝突與FreeMarker的的#{},這甚至取消,並只承認爲了向後兼容,但是解析器不配置忽略它。我能想到的最短(即使是醜陋的)解決方案是${'#'}{{}}

0

如果您的問題與href值有關,則可以使用ngHref指令解決此問題。

的代碼應該是這樣的:

<li ng-repeat="tab in tabs"> 
    <a ng-href="#/{{tab.url}}"> {{tab.title}} </a> 
</li> 
+0

感謝您的回答,但是我在'tab.url'中已經有一個前綴'/',所以這不會解決問題:-( – armnotstrong

+0

然後你可以簡單地嘗試''{{tab.url}}' – SaiUnique

+0

我試過了,因爲freemarker模板將在angularJs模板之前被解析,所以沒有得到任何好運,謝謝 – armnotstrong