AngularJS基礎(chǔ)學(xué)習(xí)筆記之控制器
AngularJS控制器用來控制AngularJS applications的數(shù)據(jù)。
AngularJS控制器就是普通的JavaScript對(duì)象。
AngularJS控制器
AngularJS applications通過控制器進(jìn)行控制。
ng-controller指令定義了一個(gè)application的控制器。
一個(gè)控制器就是一個(gè)JavaScript對(duì)象,它可以通過標(biāo)準(zhǔn)的JavaScript對(duì)象構(gòu)造函數(shù)來創(chuàng)建。
<div ng-app="myApp" ng-controller="myCtrl"> First Name: <input type="text" ng-model="firstName"><br> Last Name: <input type="text" ng-model="lastName"><br> <br> Full Name: {{firstName + " " + lastName}} </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.firstName = "John"; $scope.lastName = "Doe"; }); </script>
代碼解釋:
AngularJS application通過ng-app="myApp"來定義。該application的有效作用域處于ng-app所在的<div>中。
ng-controller="myCtrl"屬性即一個(gè)AngularJS指令,它定義了一個(gè)控制器。
myCtrl函數(shù)是一個(gè)普通的JavaScript函數(shù)。
AngularJS使用$scope對(duì)象來調(diào)用控制器。
在AngularJS中,$scope是一個(gè)application對(duì)象(即application變量和函數(shù)的所有者)。
控制器包含兩個(gè)屬性(或者叫變量):firstName和lastName。它們被附加到$scope對(duì)象上。
ng-model指令將input標(biāo)簽的值綁定到控制器的屬性上(firstName和lastName)。
控制器的方法
上面的例子展示了控制器對(duì)象包含兩個(gè)屬性:lastName和firstName。
控制器也可以包含方法(將函數(shù)賦值給變量):
<div ng-app="myApp" ng-controller="personCtrl"> First Name: <input type="text" ng-model="firstName"><br> Last Name: <input type="text" ng-model="lastName"><br> <br> Full Name: {{fullName()}} </div> <script> var app = angular.module('myApp', []); app.controller('personCtrl', function($scope) { $scope.firstName = "John"; $scope.lastName = "Doe"; $scope.fullName = function() { return $scope.firstName + " " + $scope.lastName; } }); </script>
將控制器放在外部文件中
在大型應(yīng)用中,常常會(huì)將控制器代碼寫在外部文件中。
將<script>標(biāo)簽中的代碼拷貝到personController.js外部文件中:
<div ng-app="myApp" ng-controller="personCtrl"> First Name: <input type="text" ng-model="firstName"><br> Last Name: <input type="text" ng-model="lastName"><br> <br> Full Name: {{firstName + " " + lastName}} </div> <script src="personController.js"></script>
另一個(gè)例子
創(chuàng)建一個(gè)新的控制器文件并命名為namesController.js:
angular.module('myApp', []).controller('namesCtrl', function($scope) { $scope.names = [ {name:'Jani',country:'Norway'}, {name:'Hege',country:'Sweden'}, {name:'Kai',country:'Denmark'} ]; });
然后再application中使用這個(gè)控制器文件:
<div ng-app="myApp" ng-controller="namesCtrl"> <ul> <li ng-repeat="x in names"> {{ x.name + ', ' + x.country }} </li> </ul> </div> <script src="namesController.js"></script>
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
Angular2使用vscode斷點(diǎn)調(diào)試ts文件的方法
本篇文章主要介紹了Angular2使用vscode斷點(diǎn)調(diào)試ts文件的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-12-12Angularjs注入攔截器實(shí)現(xiàn)Loading效果
angularjs作為一個(gè)全ajax的框架,對(duì)于請(qǐng)求,如果頁面上不做任何操作的話,在結(jié)果反回來之前,頁面是沒有任何響應(yīng)的,不像普通的HTTP請(qǐng)求,會(huì)有進(jìn)度條之類2015-12-12Angular6 用戶自定義標(biāo)簽開發(fā)的實(shí)現(xiàn)方法
這篇文章主要介紹了Angular6 用戶自定義標(biāo)簽開發(fā)的實(shí)現(xiàn)方法,下面我們就通過一個(gè)簡(jiǎn)單的例子演示Angular6中的這一新功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,需要的朋友可以參考下2019-01-01解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題
今天小編就為大家分享一篇解決angular2 獲取到的數(shù)據(jù)無法實(shí)時(shí)更新的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08Angular2實(shí)現(xiàn)自定義雙向綁定屬性
本篇文章主要介紹了Angular 2實(shí)現(xiàn)自定義 雙向綁定 屬性,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03Angularjs自定義指令實(shí)現(xiàn)三級(jí)聯(lián)動(dòng) 選擇地理位置
這篇文章主要介紹了Angularjs自定義指令實(shí)現(xiàn)三級(jí)聯(lián)動(dòng),選擇地理位置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02