検索
ホームページウェブフロントエンドjsチュートリアルAngularJSコントローラーの使い方の詳しい説明_AngularJS

Angularjs におけるコントローラーの役割は、ビューを拡張することです。これは、実際にはビュー内のスコープに追加機能を追加するために使用される関数であり、スコープ オブジェクトの初期状態を設定し、カスタム動作を追加します。 。

ページ上にコントローラーを作成すると、Angularjs は $scope を生成してコントローラーに渡します。Angularjs はコントローラーを自動的にインスタンス化するため、コンストラクターを記述するだけで済みます。次の例は、コントローラーの初期化を示しています:

function my Controller($scope){
 $scope.msg="hello,world!"; 
}

上記のコントローラー作成方法はグローバル名前空間を汚染します。より合理的な方法は、次のようにモジュールを作成してから、そのモジュール内にコントローラーを作成することです。

var myApp=angular.module("myApp",[]);
myApp.controller("myController",function($scope){
 $scope.msg="hello,world!";
})
組み込みコマンド ng-click を使用して、ボタン、リンク、その他の DOM 要素をクリック イベントにバインドします。 ng-click ディレクティブは、ブラウザーのマウスアップ イベントを DOM 要素に設定されたイベント ハンドラーにバインドします (たとえば、ブラウザーが DOM 要素でクリック イベントをトリガーすると、関数が呼び出されます)。前の例と同様に、バインディングは次のようになります:

<div ng-controller="FirstController">
<h4 id="The-simplest-adding-machine-ever">The simplest adding machine ever</h4>
<button ng-click="add(1)" class="button">Add</button>
<a ng-click="subtract(1)" class="button alert">Subtract</a>
<h4 id="Current-count-counter">Current count: {{ counter }}</h4>
</div>
ボタンとリンクは内部 $scope の操作にバインドされており、要素がクリックされると、AngularJS は対応するメソッドを呼び出します。どの関数を呼び出すかを設定するとき、パラメータ (add(1)) も括弧内に渡されることに注意してください

app.controller('FirstController', function($scope) {
$scope.counter = 0;
$scope.add = function(amount) { $scope.counter += amount; };
$scope.subtract = function(amount) { $scope.counter -= amount; };
});
Angularjs と他のフレームワークの最大の違いは、コントローラーがデータ モデルの保存以外の DOM 操作、フォーマットまたはデータ操作、および状態維持操作の実行には適していないことです。これはビューと $scope の間の単なるブリッジです。 。

コントローラーのネスト (スコープにスコープが含まれる)

AngularJS アプリケーションのどの部分にも、どのコンテキストでレンダリングされるかに関係なく、親スコープがあります。 ng-app が配置されているレベルの親スコープは $rootScope です。

デフォルトでは、AngularJS は現在のスコープでプロパティが見つからない場合、親スコープでプロパティを探します。 AngularJS が対応する属性を見つけられない場合、$rootScope に到達するまで親スコープに沿って上向きに検索します。 $rootScope で見つからない場合、プログラムは引き続き実行されますが、ビューは更新されません。

例を通してこの動作を見てみましょう。ユーザー オブジェクトを含む ParentController を作成し、このオブジェクトを参照する ChildController を作成します。

app.controller('ParentController', function($scope) {
$scope.person = {greeted: false};
});
app.controller('ChildController', function($scope) {
$scope.sayHello = function() {
$scope.person.name = 'Ari Lerner';
};
});
ChildController を ParentController 内に配置すると、ChildController の $scope オブジェクトの親スコープは、ParentController の $scope オブジェクトになります。プロトタイプ継承の仕組みにより、子スコープ内のParentControllerの$scopeオブジェクトにアクセスすることができます。

<div ng-controller="ParentController">
<div ng-controller="ChildController">
<a ng-click="sayHello()">Say hello</a>
</div>
{{ person }}
</div>
上記がこの記事の全内容です。これがあなたの学習に役立ち、AngularJS コントローラーに慣れるのに役立つことを願っています。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Windows 11 上正确校准 Xbox One 控制器的方法Windows 11 上正确校准 Xbox One 控制器的方法Sep 21, 2023 pm 09:09 PM

由于Windows已成为首选的游戏平台,因此确定其面向游戏的功能就显得尤为重要。其中之一是能够在Windows11上校准XboxOne控制器。借助内置的手动校准,您可以摆脱漂移、随机移动或性能问题,并有效地对齐X、Y和Z轴。如果可用选项不起作用,您可以随时使用第三方XboxOne控制器校准工具。让我们来了解一下!如何在Windows11上校准我的Xbox控制器?在继续操作之前,请确保将控制器连接到电脑并更新XboxOne控制器的驱动程序。当您使用它时,还要安装任何可用的固件更新。1.使用Wind

从零开始学习Laravel:控制器方法调用详解从零开始学习Laravel:控制器方法调用详解Mar 10, 2024 pm 05:03 PM

从零开始学习Laravel:控制器方法调用详解在Laravel的开发中,控制器是一个非常重要的概念。控制器起到了连接模型和视图的桥梁作用,负责处理来自路由的请求,并返回相应的数据给视图展示。控制器中的方法可以被路由调用,这篇文章将详细介绍如何编写并调用控制器中的方法,同时会提供具体的代码示例。首先,我们需要创建一个控制器。可以使用Artisan命令行工具来生

php如何使用CodeIgniter4框架?php如何使用CodeIgniter4框架?May 31, 2023 pm 02:51 PM

PHP是一种非常流行的编程语言,而CodeIgniter4是一种常用的PHP框架。在开发Web应用程序时,使用框架是非常有帮助的,它可以加速开发过程、提高代码质量、降低维护成本。本文将介绍如何使用CodeIgniter4框架。安装CodeIgniter4框架CodeIgniter4框架可以从官方网站(https://codeigniter.com/)下载。下

什么叫laravel控制器什么叫laravel控制器Jan 14, 2023 am 11:16 AM

在laravel中,控制器(Controller)是一个类,用于实现一定的功能;控制器能将相关的请求处理逻辑组成一个单独的类。控制器中存放中一些方法,实现一定的功能,通过路由调用控制器,不再使用回调函数;控制器被存放在“app/Http/Controllers”目录中。

Laravel学习指南:控制器方法调用的最佳实践Laravel学习指南:控制器方法调用的最佳实践Mar 11, 2024 am 08:27 AM

在Laravel学习指南中,控制器方法的调用是一个非常重要的主题。控制器扮演着连接路由和模型的桥梁的角色,在应用程序中起着至关重要的作用。本文将介绍控制器方法调用的最佳实践,并提供具体的代码示例帮助读者更好地理解。首先,让我们来了解控制器方法的基本结构。在Laravel中,控制器类通常存放在app/Http/Controllers目录下,每个控制器类包含多个

2022年最新5款的angularjs教程从入门到精通2022年最新5款的angularjs教程从入门到精通Jun 15, 2017 pm 05:50 PM

Javascript 是一个非常有个性的语言. 无论是从代码的组织, 还是代码的编程范式, 还是面向对象理论都独具一格. 而很早就在争论的Javascript 是不是面向对象语言这个问题, 显然已有答案. 但是, 即使 Javascript 叱咤风云二十年, 如果想要看懂 jQuery, Angularjs, 甚至是 React 等流行框架, 观看《黑马云课堂JavaScript 高级框架设计视频教程》就对了。

使用PHP和AngularJS搭建一个响应式网站,提供优质的用户体验使用PHP和AngularJS搭建一个响应式网站,提供优质的用户体验Jun 27, 2023 pm 07:37 PM

在如今信息时代,网站已经成为人们获取信息和交流的重要工具。一个响应式的网站能够适应各种设备,为用户提供优质的体验,成为了现代网站开发的热点。本篇文章将介绍如何使用PHP和AngularJS搭建一个响应式网站,从而提供优质的用户体验。PHP介绍PHP是一种开源的服务器端编程语言,非常适用于Web开发。PHP具有很多优点,如易于学习、跨平台、丰富的工具库、开发效

在Yii框架中使用控制器(Controllers)处理Ajax请求的方法在Yii框架中使用控制器(Controllers)处理Ajax请求的方法Jul 28, 2023 pm 07:37 PM

在Yii框架中,控制器(Controllers)扮演着处理请求的重要角色。除了处理常规的页面请求之外,控制器还可以用于处理Ajax请求。本文将介绍在Yii框架中处理Ajax请求的方法,并提供代码示例。在Yii框架中,处理Ajax请求可以通过以下步骤进行:第一步,创建一个控制器(Controller)类。可以通过继承Yii框架提供的基础控制器类yiiwebCo

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン