2015-07-01 100 views
0

這是我的標記訪問範圍功能導航欄上

<div class="container" ng-app="app"> 
    <header ng-include="'templates/nav.html'"></header> 
    <div ui-view></div> 
    <footer></footer> 
</div> 

這裏,nav.html不是view,並沒有提及任何控制器。在這種情況下,如果我必須在nav.html的按鈕ng-click上執行一些功能,我該在哪裏編寫該方法?是否應該在rootScope?不知道,我可能是錯的。

請指引正確的方向。

+1

我想你應該創建一個封裝了導航欄一個指令然後它自己的指令可以包含函數或委託給可以在父模板上設置的函數 – Raulucco

回答

1

你可以聲明控制器在nav.html這樣的:

<div ng-controller="myController"> 
... 
</div> 

聲明控制器如下:

var module = angular.module('app'); 
module.controller('myController', myController); 
function myController($scope) { 
    //Write function here 
} 
+0

請添加註釋,以表明downvote的原因。所以我不會再犯這個錯誤,只要這是一個錯誤。 –

+0

嗯,我認爲你沒有理解真正的問題。你在回答中解釋的是關於AngularJS最基本的東西,任何初學者都會知道。真正的問題是如何將一個'ng-include'd元素與控制器連接起來。 –

+0

嗯。我能想到的選項是在模板中使用ng-controller,但顯然不是問題本身所建議的選項。所以,請賜教@Салман。 –

0
<div class="container" ng-app="app"> 
    <my-header> </my-header> 
    <div ui-view></div> 
    <footer></footer> 
</div> 

//JS 
//Previous code 
.directive('myHeader', function(){ 
    return { 
    templateUrl : 'templates/nav.html', 
    controller : [function(){ 
     //Here you are 
    }] 

    }; 
});