2014-01-23 69 views
11

我試過閱讀ng-include的文檔,但迄今爲止沒有運氣。所有我想要做的是有ng-include評估,其中模板/部分是路徑和加載的內容:Angular JS ng-包含表達式

<div data-ng-include src="'{{pageData.src}}'"></div> 

我可以看到pageData.src在控制檯返回"tpl/page.html"。我試過以下變化:

<div data-ng-include src="{{pageData.src}}"></div> 
<div data-ng-include src='{{pageData.src}}'></div> 
<div data-ng-include src={{pageData.src}}></div> 

他們都沒有看到評估表達式。我收到以下錯誤:

Error: [$parse:syntax] http://errors.angularjs.org/1.2.9/$parse/syntax?p0=pageData.src&p1=is%20unexpected%2C%20expecting%20%5B%3A%5D&p2=3&p3=%7B%7BpageData.src%7D%7D&p4=pageData.src%7D%7D 

反饋非常感謝!

回答

26

在NG-包括SRC需要JavaScript的表情讓你的情況下應該工作:

<div data-ng-include src="pageData.src"></div> 

當你看到像這樣

<div data-ng-include src="'templates/myTemplate.html'"></div> 

額外的單引號雙引號中在這個例子中是一個javascript表達式字符串文字。

當您看到{{}}這是針對不使用javascript表達式而只是一個字符串的指令。例如ng-href需要一個字符串。該字符串可以是應該包含在{{}}中的js表達式的結果,例如

<a ng-href="{{pageData.src}}/myImage.jpg">Go</a> 

最後提到一些讓我困惑的事情,那就是當有單個curlies表達式時{}。例如

<a ng-class="{'active': item.active, 'locked': item.disabled}">Go</a> 
在這種情況下

這是一個js地圖表達和NG-類需要具有值的計算結果爲True的名稱。因此,如果在上面的item.active評估爲true,那麼'active'將被添加爲一個類。

+0

謝謝!我不敢相信我沒有嘗試過。 – Jesse

4

試試這個: -

<div data-ng-include="pageData.src"></div> 

如果你能發佈的jsfiddle,它會很容易讓我看到確切的問題。