我正在尝试学习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
}
我知道这可能是个人偏好,但我想知道是否有一种首选方式或更简洁的方法。此外,如果有更好的方法,请同时提及。
答案 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>