ホームページ >ウェブフロントエンド >htmlチュートリアル >Angular Basics の概要_html/css_WEB-ITnose
// 第一个参数为模块名,第二个参数为当前这个模块所依赖的模块列表angular.module('ModuleName', []);
var existModule = angular.module('ExistModule');
例: - 登録モジュール - ログインモジュール - ユーザーリストページモジュール - ユーザー詳細ページモジュール - など
例: - すべてのコントローラー - すべてのサービス -すべての命令 - など
現在のエンタープライズ開発でAngularを使用する場合、主なことは、対応するコントローラーとモデルを開発することです
コントローラーを定義するには3つの方法があることに注意してください。最初のものは Eliminate です
最も初期の Angular コードでは、コントローラーがグローバル関数として定義されていることがあります:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>早期的控制器定义方式-全局函数</title></head> <body ng-app> <div ng-controller="FooController"> <input type="button" value="clicked me!" ng-click="say()"> </div></body> </html>
function FooController($scope) { $scope.say = function(){ console.log('hello angular'); };}このメソッドは、たとえサポートされていてもサポートされなくなりました。排除されない。低すぎるため使用すべきではない (グローバル スコープの問題)
で定義されたコントローラー メソッドを通じて定義される、Angular の最も一般的な使用方法。モジュール コントローラー
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>常用方式(挂载在某个模块下)</title></head> <body ng-app="MyModule"> <div ng-controller="FooController"> <input type="button" value="clicked me!" ng-click="say()"> </div></body> </html>
angular.module('MyModule', []) .controller('FooController', function($scope) { $scope.say = function(){ console.log('hello angular'); }; });
コンストラクターを定義してオブジェクト指向のコードを書きたい学生の場合は、コンストラクターの形式でコントローラーを定義できます
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>面向对象的方式</title></head> <body ng-app="MyModule"> <div ng-controller="FooController as context"> <input type="button" value="clicked me!" ng-click="context.say()"> </div></body> </html>
function FooController() { this.message = 'hello angular';}FooController.prototype.say = function() { console.log(this.message);};angular.module('MyModule', []) .controller('FooController', FooController);
angular.module('MyModule', []) .controller('FooController', ['$scope', function(whatever) { whatever.say = function(){ console.log('hello angular'); }; }]);解決策はコントロールを作成することです。 コントローラーの 2 番目のパラメーターは配列に変更されます。 配列の最後のメンバーは前のコントローラー関数です。 前のメンバーはオブジェクトのリストです。コントローラー関数が順番に対応して注入する必要があるもの
パラメーター名に基づいて特定のオブジェクトを渡す方法?
function getFnParams(fn) { if (typeof fn == 'function') { var mathes = /.+\((.+)\)/.exec(Function.prototype.toString.call(fn)); if (mathes[1]) { var args = mathes[1].replace(/\s/g, '').split(','); return args; } }}function foo(id, name, a1ge) {}console.log(getFnParams(foo));
誰もがマスターしなければならないのは、プロトタイプに基づいて対応するビューモデルを抽象化する方法です
テンプレートエンジンの構文に似ています
式を使用してデータをHTMLにバインドします。
相同点: - AngularJS 表达式可以包含字母,操作符,变量。
不同点: - AngularJS 表达式可以写在 HTML 中。 - AngularJS 表达式不支持条件判断,循环及异常。 - AngularJS 表达式支持过滤器。
不同于以上的功能性指令,Angular还定义了一些用于和事件绑定的指令:
myModule.directive('hello', function() { return { restrict: 'E', template: '<h1>Hello world</h1>', replace: true };});
myApp.directive("ngHover", function() { return function(scope, element, attrs) { element.bind("mouseenter", function() { element.css("background", "yellow"); }); element.bind("mouseleave", function() { element.css("background", "none"); }); }});
在定义指令应该使用驼峰命名法,使用指令时应该使用的是全小写字母中划线分割的方式