2014-04-08 36 views
0

問題是,我有一個索引頁,帶有一個(部分)部分視圖,我們可以通過一個控制器來調用「A.html」 ACtrl「由$ routeProvider分配,但在該部分視圖中,我想爲使用ng-controller的某些div使用不同的控制器來包含」A1Ctrl「。

這可能嗎?

不專注於任何代碼,但在概念如果這幾乎不可能和如何?

我試圖在局部視圖這樣的事情沒有成功,包括:

A.html

... //Other stuff for this partial view 
<div ng-controller="A1Ctrl"> 
    {{message}} 
</div> 

... //更多的東西這個局部視圖

我有包括.js,其中A1Ctrl被定義到索引頁面,結果相同。任何提示?

UPDATE:

我創建plnkr樣本代碼來說明我想做的事:http://plnkr.co/edit/hdpLMK3DbzNdz2KeHPEB?p=preview

我點擊「打招呼」,它有它自己的模板(後產生的局部視圖「first.html」)和控制器,由$ routeProvider注入。但是,在first.html中的部分視圖中,我想添加一個僅有該代碼段的控件。但是我不能使它工作,有什麼建議嗎?

我也嘗試使用依賴注入將模塊「多語言」包含到router.js中,但沒有成功,因爲它似乎產生了一個錯誤。

的index.html

<html ng-app="plunker"> 

<head> 
    ... //Other imports 
    <script src="app.js"></script> 
    <script src="router.js"></script> 
    <script src="multilanguage.js"></script> 
</head> 

<body ng-controller="MainCtrl"> 
    <p>Hello {{name}}!</p> 

    <a href="first">Say hi</a> | 
    <a href="second">Say bye</a> 
    <br/> 

    <div ng-view=""></div> 
</body> 

</html> 

first.html

{{message}} 
<div ng-controller="MultiLang"> 
    {{message}} 
</div> 

router.js

var app = angular.module('router', ['ngRoute', 'multilanguage']). 
config(function ($routeProvider, $locationProvider) { 
    $locationProvider.html5Mode(true); 
    $routeProvider. 
    when("/first", { 
     templateUrl: "first.html", 
     controller: "EngLang" 
    }). 
    when("/second", { 
     template: "Bye man!" 
    }); 
}); 

app.controller('EngLang', function($scope) { 
    $scope.message = 'Hi guys'; 
}); 

multilanguage.js

angular.module('multilanguage', []). 
controller('MultiLang', function($scope){ 
    $scope.message = "Hallo, Hola, Ciao, Ni Hao" 
}); 

在此先感謝。

+0

你是如何包括部分的看法? – Chandermani

+0

檢查我的更新,我將它們包含在$ routeProvider中。 –

+0

排序!請參閱更新和更新2 –

回答

0

是的,你也可以使用嵌套的控制器,例如:

<div ng-controller="A1Ctrl"> 
    {{ message }} 

    <div ng-controller="subCtrl"> 
     {{ message }} 
    </div> 
</div> 
+0

請使用plnkr代碼和解釋查看我的更新。 –