2016-12-30 38 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

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

相关问题