2014-11-02 74 views
0

這可能很簡單,但我無法在Angular文檔中找到答案。考慮有關Angular Routing docs中路由的示例。這是主要的html模板。Angular.js路由:如何爲外層模板設置控制器?

<body> 
    <div ng-view></div> 
</body> 
</html> 

每個視圖都有其自己的控制器,按:

phonecatApp.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/phones', { 
     templateUrl: 'partials/phone-list.html', 
     controller: 'PhoneListCtrl' 
     }). 
     when('/phones/:phoneId', { 
     templateUrl: 'partials/phone-detail.html', 
     controller: 'PhoneDetailCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/phones' 
     }); 
    }]); 

樣樣精,到目前爲止,但: 問題:我如何可以設置主模板控制器?

說,例如,我想有這樣的:

<html> 
<body> 
    <a ng-click="someFunction()">Function</a> 
    <div ng-view></div> 
</body> 
</html> 

如何以及在哪裏我定義someFunction()

非常感謝您的幫助。

回答

1

在你的html元素中使用ng-controller作爲屬性,在這種情況下是body。

<html> 
    <body ng-controller= "myController"> 
     <a ng-click="someFunction()">Function</a> 
     <div ng-view></div> 
    </body> 
</html> 

寫您的功能myController的

app.controller("myController",function($scope){ 

     $scope.someFunction=function(){ 
      //your code 
     } 
}); 
0

使用ngController指令:

<html> 
<body ng-controller="mainController"> 
    <a ng-click="someFunction()">Function</a> 
    <div ng-view></div> 
</body> 
</html> 

因此對於特定的部分,如果你想有一個控制器,而不在這種情況下,你可以在app.js提使用ng-controller。