2014-09-02 141 views
0

我有兩個功能代碼註冊控制器與Angular。當使用模塊註冊控制器

第一代碼是:

在app.js:

var app = angular.module('myapp', ['...']); 
app.config(... 

    $stateProvider 
    .state('first', { 
     url: '/first', 
     templateUrl: 'first.html', 
     controller: 'myController1' 
    }).state('second', { 
     url: '/second', 
     templateUrl: 'second.html', 
     controller: 'myController2' 
    }); 
); 

在myControllers.js

app.controller('myController1', function(){ 
     ... 
}); 

app.controller('myController2', function(){ 
     ... 
}); 

第二代碼是:

在app.js:

var app = angular.module('myapp', ['...', 'myControllers']); 
app.config(... 

    $stateProvider 
    .state('first', { 
     url: '/first', 
     templateUrl: 'first.html', 
     controller: 'myController1' 
    }).state('second', { 
     url: '/second', 
     templateUrl: 'second.html', 
     controller: 'myController2' 
    }); 
); 

在myControllers.js

var myControllers = angular.module('myControllers', []); 

myControllers.controller('myController1', function(){ 
     ... 
}); 

myControllers.controller('myController2', function(){ 
     ... 
}); 

什麼是最好的解決辦法嗎?爲什麼使用模塊包含幾個控制器?謝謝。

回答

1

Angular中的模塊是將相關代碼邏輯打包爲塊的一種方式。這些塊可以稍後組成(考慮其他語言的第三方庫)。

這通常是如何包含外部Angular代碼(從github等)到您的項目。外部項目創建一個模塊,供您用作模塊依賴項。這是angular.module('myApp', ['myDependency'])的方式。

這是一個可選功能,但可用於大型(或自然隔離)的項目。

如果您不需要模塊。我建議你使用更簡單的(第一個)解決方案。

Module Documentation.