2016-12-30 68 views
-3

哪一個是用於初始化模塊正確的方法,控制器angularJS哪一個是正確的方式來初始化模塊,在angularJS控制器?

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

myapp.controller('Ctrl1', Ctrl1); 
myapp.controller('Ctrl2', Ctrl2); 

Ctrl1.$inject = ['$scope', '$http']; 
Ctrl2.$inject = ['$scope', '$http']; 

function Ctrl1($scope, $http) { 
} 

function Ctrl2($scope, $http) { 
} 

或這樣

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

myapp.controller('Ctrl1', Ctrl1); 

Ctrl1.$inject = ['$scope', '$http']; 

function Ctrl1($scope, $http) { 
} 


myapp.controller('Ctrl2', Ctrl2); 

Ctrl2.$inject = ['$scope', '$http']; 

function Ctrl2($scope, $http) { 
} 

或做這樣

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

myapp.controller('Ctrl1', ['$scope', '$http', function ($scope, $http) {} ]); 

myapp.controller('Ctrl2', ['$scope', '$http', function ($scope, $http) {} ]); 

我困惑哪條路是正確的,你可以給我AngularJS frmawork的最終項目結構 github的任何示例項目都歡迎

一些人民說,約翰爸爸的風格,一個正確的方式,我的意思是最有效的方式

+0

https://github.com/johnpapa/angular-styleguide –

+0

@RaghuVenmarathoor你可以給我一個示例項目上這個,如果你有... –

+0

我沒有任何開源項目它遵循風格指南中的所有內容。 github中一定有東西。我在我的項目中遵循它,並通過閱讀文檔並安裝文檔中提到的崇高插件來啓動它。指導方針很簡單。 –

回答

0

的simpliest方式是寫:

myapp.controller('Ctrl1', function($scope, $http) { 
}); 

而且你應該使用ngmin微小之前解析代碼。它會自動將控制器回調包裝在['$scope', '$http', function($scope, $http) {}]中以避免縮小問題。

如果您使用gulp,請使用gulp-ngmin。

+0

如果你有我可以給我一個小項目嗎?我是Angular JS中的新手我想要得到的結構也有.. –

0

第二種方式應儘可能因爲

  1. 這是很容易閱讀的理想方式。
  2. 易於維護
  3. 受注射器的微小化保護。

反正他們都是正確的。

但第二種方式應該是最好的。

還要確保您纏繞代碼的方式從變量名衝突,以保護:

(function(){ 
    'use strict'; //another best practice 
    //then your code 
})() 
+0

你可以給我一個示例項目給我嗎? –

+1

@AraviS這裏有一個非常好的解釋:https://github.com/jhu-ep-coursera/fullstack-course5。通過幻燈片以及 –

0

角的$注射的方法,我們可以明確地宣佈我們的依賴。這可能會給每個控制器注入問題。除了你可以使用。

https://docs.angularjs.org/api/auto/service/ $注射器

+0

我沒有明白 –

+0

myapp.controller('Ctrl1',Ctrl1); myapp.controller('Ctrl2',Ctrl2); Ctrl1。$ inject = ['$ scope','$ http']; Ctrl2。$ inject = ['$ scope','$ http']; –

+0

你明確地注射了方法。所以請避免像上面 –

相關問題