2014-03-04 61 views
1

我不明白控制器如何與Hawtio項目中的視圖連接。角度控制器如何與視圖綁定?

例如,查看:

<div ng-controller="Core.AboutController"> 
    <div class="welcome"> 
    <div class="about-display" compile="html"></div> 
    </div> 
</div> 

控制器聲明:

module Core { 
    export function AboutController($scope, $location, jolokia, branding, localStorage) { 
    //... 
    } 
    //... 
} 

我希望能夠找到類似的東西:

angular.module('moduleName').controller('Core.AboutController', Core.AboutController); 

但沒有發現。怎麼運行的?

回答

1

這是有效的,因爲在沒有任何角度註冊的情況下,即angular.module('moduleName').controller('Core.AboutController'角度看在window並試圖解決它。這是什麼

module Core { 
    export function AboutController 

呢。在這一行window.Core.AboutController將指向正確的功能,這是什麼角度剛剛發現。

1

只需查看您發佈的HTML示例第一行的屬性即可。

ng-controller="Core.AboutController" 

有(據我所知)兩種方法將視圖關聯到控制器。第一個是有一個屬性,就像這個例子。第二個是配置路由器的時候:

angular.module('MyApp', ['Core.Aboutcontrollers']). 
config(['$routeProvider', function($routeProvider) { 
    $routeProvider.when('/path', {templateUrl: 'partials/myfile.html' }); 
}]); 

不要這樣做,否則你的控制器會被調用兩次。

+0

'angular.module('MyApp',['Core.Aboutcontrollers'])。'是錯誤的。您只需將控制器置於角度模塊的位置即可。 – basarat

+0

這就是它在角種子中完成的方式,這是您當然知道廣泛使用的角度項目模板:https://github.com/angular/angular-seed/blob/master/app/js/app.js。它不會重新放置模塊,它定義了模塊和控制器之間的依賴關係。 –

+0

我的app.controllers是一個模塊。不是控制器https://github.com/angular/angular-seed/blob/master/app/js/app.js#L10 – basarat

相關問題