正确初始化角度模块和控制器的方法

时间:2016-01-17 03:18:04

标签: javascript angularjs

我正在尝试学习angular.js并且已经看到了几种不同的方法来初始化模块和控制器。

以下是我通过调试一个我一直用作指南的网站找到的方法。

var myApp = angular.module("myApp", []);
myApp.controller("myController", myController);

function myController($scope) {
     //some code
}

她是我在一些不同的教程上看到它的方式

angular.moudule('myApp', []).controller('myController', function($scope){
    //some code
}

我知道这可能是个人偏好,但我想知道是否有一种首选方式或更简洁的方法。此外,如果有更好的方法,请同时提及。

3 个答案:

答案 0 :(得分:1)

这两种方式有不同的区别:

  • 拥有全局变量
  • 链接方法
  • 内联回调函数

这给了我们两个例子中的八个组合,它们直接比较了每个单调乏味。使用您认为最适合您(和您的团队)并且适合项目的任何内容(例如,您是否需要代码中其他位置的myApp变量,例如从外部文件加载组件等)。如果您仍然无法决定,可以在线查看几个Angular样式指南,并进行探索。

答案 1 :(得分:0)

我也遵循john papa的风格指南..因为你应该将控制器定义为

<VirtualHost *:80>
  ServerName <%= @params[:server_name] %>
  DocumentRoot <%= @params[:docroot] %>

  <Directory <%= @params[:docroot] %>>
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
  </Directory>

  LogLevel info
  ErrorLog <%= @node[:apache][:log_dir] %>/<%= @params[:name] %>-error.log
  CustomLog <%= @node[:apache][:log_dir] %>/<%= @params[:name] %>-access.log combined
</VirtualHost>

答案 2 :(得分:0)

有许多方法,但总是可以重用,一个更好,更有帮助。

  

将模块保存在单独的变量中

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

myApp.controller('FirstController', ['$scope', function($scope) {
  $scope.greet = 'Hi Im First Controller !';
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<div ng-app="myApp" ng-controller="FirstController">
  {{ greet }}
</div>

  

链接方法

var myApp = angular.module('myApp',[]).controller('SecondController', ['$scope', function($scope) {
      $scope.greet = 'Hi Im Chained Second Controller !';
    }]);
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <div ng-app="myApp" ng-controller="SecondController">
      {{ greet }}
    </div>