2014-03-04 22 views
0

當我使用ng-include時,無法通過在include中設置ng控制器來更改使用的控制器。控制器不被包含者「看到」。如果我在調用div include中定義控制器,它將起作用。在ng-include中使用不同的ng控制器

例如:

我有一個包括這樣的:

<div ng-controller="baseController"> 
    <div ng-include="other.html"></div> 
</div> 

的other.html定義爲:

<div ng-controller="subController"> 
    <ul> 
    <li ng-repeat="address in addresses"> 
     {{ address.name }} 
    </li> 
    </ul> 
</div> 

在這個版本的地址將不顯示任何的地址的但如果我將代碼更改爲:

<div ng-controller="baseController" ng-controller="subController"> 
    <div ng-include="other.html"></div> 
</div> 

的other.html被定義爲:

<div > 
    <ul> 
    <li ng-repeat="address in addresses"> 
     {{ address.name }} 
    </li> 
    </ul> 
</div> 

一切工作正常,並顯示地址。

爲什麼?

問候

夏侯範德Kreeft

回答

3

請找到plunkr

<div ng-controller="baseController"> 
    <div ng-include src="'other.html'"></div> 
</div> 

如果傳遞SRC作爲需要內報價串。你通常會這樣做,永遠不會改變的文件。如果您需要更改文件,最好將該值設置爲Angular變量並在變量中引用該變量。

EX:

<div ng-include src="templatePath"></div> 

&腳本代碼是

$scope.templatePath = "other.html"; 
+0

我想添加一個控制器中包括,而不是在通話DIV。包括div只是不接受在include中定義的控制器。 – Toxus

+0

是的,包含中有控制器。請檢查我上面附上的Plunkr(other.html) – Sai

0

試試這個:

<div ng-controller="baseController"> 
    <div ng-include="'other.html'"></div> 
</div>