亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

AngularJs學習第五篇從Controller控制器談談$scope作用域

2019-11-20 09:45:33
字體:
來源:轉載
供稿:網友

Controller的創建

AngularJs controller使用無處不在,在里代碼演示比較簡單的創建工作。

<!DOCTYPE html><html xmlns="http://www.w.org//xhtml" ng-app="exampleApp"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-"/><title>App</title><script src="angular.js"></script><link href="bootstrap-theme.css" rel="stylesheet" /><link href="bootstrap.css" rel="stylesheet" /><script>angular.module("exampleApp", []).controller("defaultCtrl", function ($scope) {$scope.setInput = function (value) {console.log("print:" + value);}});</script></head><body ng-controller="defaultCtrl"> <div class="well"><h>Count</h><div class="form-group"><input class="form-control" required ng-model="value" /><button ng-click="setInput(value)">Click</button></div></div></body></html> 

  在這控制很簡單,首先我在html 中添加了 ng-app 屬性,表示module的作用范圍。

在 body 中添加了 ng-controller 表示 defaultCtrl 控制器的作用范圍。

input 便簽中ng-model 指令的是綁定數據,雙向數據綁定(MVVM)。

$scope 是AngularJs內置的作用域。

此實例的只是把輸入的值打印到控制臺中,如圖:

僅此而已,簡單吧。

多個控制器controller作用域問題

現在我們來改造下程序,

<body ><div class="well" ng-controller="defaultCtrl"><h>Count</h><div class="form-group"><input class="form-control" required ng-model="value" /><button ng-click="setInput(value)">Click</button></div></div><div class="well" ng-controller="defaultCtrl"><h>Count</h><div class="form-group"><input class="form-control" required ng-model="value" /><button ng-click="setInput(value)">Click</button></div></div></body> 

  其余代碼不變,我只是把放到body 中的屬性 ng-controller 放到了兩個div中。我重用了defaultCtrl控制器,猜想下,如果我在第一個input標簽輸入內容,我點擊第二個控制器的button按鈕,會出現你所期望的結果嗎?

結果是否和你想你的一樣呢,大家可以看到這個結果為undefined. 在個很好解釋,應為他們的作用域不同,雖然你重復使用了統一控制器,但是在創建作用域確實不同的。

調用的工廠函數會返回不同的作用域。

那么如何進行不同作用域之間的訪問呢,在Angularjs中對于作用域訪問有個$rootScope 。

在這里有三個函數需要介紹下,

$on(name,handler) 注冊一個事件處理函數,該函數在特定的事件被當前作用域收到時將被調用。

$emit(name,args) 向當前父作用域發送一個事件,直至根作用域。

$broadcast(name,args) 向當前作用域下的子作用域發送一個事件,參數是事件名稱以及一個用于作用向事件提供額外數據的對象。

現在來更改下代碼:

<script>angular.module("exampleApp", []).controller("defaultCtrl", function ($scope,$rootScope) {$scope.$on("UpdateValue", function (event, args) {$scope.input = args.zip;});$scope.setInput = function (value) {$rootScope.$broadcast("UpdateValue", { zip: value });console.log("print:" + $scope.input);}$scope.copy = function () {console.log("copy:" + $scope.input);};});</script> <div class="well" ng-controller="defaultCtrl"><h>Count</h><div class="form-group"><input class="form-control" required ng-model="value" /><button ng-click="copy()">Copy</button></div></div> 

  在段代碼中我添加了幾個函數,同時改變了第二個控制器的函數。

結果:

確實發生了。

controller繼承

<script>angular.module("exampleApp", []).controller("defaultCtrl", function ($scope, $rootScope) {//$scope.$on("UpdateValue", function (event, args) {// $scope.input = args.zip;//});$scope.setInput = function (value) {//$rootScope.$broadcast("UpdateValue", { zip: value });$scope.input = value;console.log("print:" + $scope.input);}$scope.copy = function () {console.log("copy:" + $scope.input);};}).controller("simpleCtrl", function ($scope) {$scope.copy = function () {console.log("copy:" + $scope.input);};});</script><body ng-controller="defaultCtrl"><div class="well"><h>Count</h><div class="form-group"><input class="form-control" required ng-model="value" /><button ng-click="setInput(value)">Click</button></div></div><div class="well" ng-controller="simpleCtrl"><h>Count</h><div class="form-group"><input class="form-control" required ng-model="value" /><button ng-click="copy()">Copy</button></div></div></body> 

  我添加了一個控制器,simpleCtrl 仔細觀察下,發現defaultCtrl 包含了simpleCtrl 中,所以作用simple 也繼承 了。

結果圖:發下我在第一個窗中輸入時,第二個也變了,應為都是同一個value。

$scope 作用域問題,在使用controller時 要明白其作用域。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩福利在线观看| 成人精品久久av网站| 国产一区二区三区三区在线观看| 久久天天躁夜夜躁狠狠躁2022| 成人在线国产精品| 亚洲视频一区二区三区| 日韩视频免费中文字幕| 国内精品美女av在线播放| 成人一区二区电影| 日韩毛片在线观看| 成人激情综合网| 91国产精品电影| 国产亚洲欧美另类中文| 欧美日韩一区免费| 亚洲v日韩v综合v精品v| 久久精品99久久香蕉国产色戒| 久久久久久久国产精品视频| 精品二区三区线观看| 日韩极品精品视频免费观看| 欧美成在线视频| 国产日韩欧美日韩大片| 91精品国产一区| 成人免费网站在线观看| 亚洲图片欧美午夜| 国产成人精品久久二区二区| 国产亚洲精品久久久久久牛牛| 中文字幕亚洲无线码a| 91欧美激情另类亚洲| 日韩免费av一区二区| 一区二区三区高清国产| 成人xvideos免费视频| 性色av香蕉一区二区| 自拍偷拍亚洲一区| 国产精品视频久久| 午夜精品国产精品大乳美女| 狠狠躁夜夜躁人人爽超碰91| 成人激情视频在线| 日本欧美国产在线| 97久久国产精品| 91精品视频在线| 91精品视频观看| 日韩精品福利在线| 日韩欧美福利视频| 久久露脸国产精品| 欧美成年人在线观看| 性色av一区二区三区| 亚洲精品综合久久中文字幕| 国产视频亚洲视频| 欧美中文字幕在线观看| 国产一区二区三区直播精品电影| 国产不卡av在线免费观看| 国产精品亚洲美女av网站| 中文字幕av一区二区三区谷原希美| 亚洲精品中文字| 国产亚洲欧美aaaa| 91嫩草在线视频| 国产成人短视频| 成人国内精品久久久久一区| 欧美一级淫片aaaaaaa视频| 在线不卡国产精品| 91国产精品91| 亚洲成年人在线| 日韩在线精品视频| 2019精品视频| 68精品国产免费久久久久久婷婷| 欧美午夜久久久| 欧美裸体视频网站| 超碰97人人做人人爱少妇| 国产成人一区二| 国模精品一区二区三区色天香| 日韩在线一区二区三区免费视频| 国产丝袜精品第一页| 欧美精品日韩三级| 欧美日韩国产精品一区二区三区四区| 欧美裸体xxxx极品少妇软件| 热99精品里视频精品| 国产精品男人的天堂| 亚洲精品一区av在线播放| 国产精品成人aaaaa网站| 欧美一级大片在线免费观看| 欧美日韩亚洲精品一区二区三区| www.亚洲天堂| 国产精品久久久久av免费| 色先锋久久影院av| 51久久精品夜色国产麻豆| 国产精品成人一区| 日韩有码在线电影| 亚洲成人免费在线视频| 亚洲xxx大片| xxxxx成人.com| 亚洲精品美女久久久久| 国产日韩av高清| 精品美女永久免费视频| 日韩资源在线观看| 亚洲网在线观看| 久久在线视频在线| 91免费国产视频| 欧美日韩人人澡狠狠躁视频| 欧美性一区二区三区| 亚洲欧美日韩一区二区三区在线| 亚洲无线码在线一区观看| 国产精品av网站| 精品久久久久久久久久国产| 91精品国产99| 国产视频精品va久久久久久| 欧美视频二区36p| 亚洲人午夜精品免费| 亚洲午夜女主播在线直播| 成人免费激情视频| 欧美日韩国产影院| 国产91免费观看| 欧美性xxxxhd| 久久精品欧美视频| 欧美精品在线免费播放| 国产精品欧美久久久| 国产成人精品久久二区二区91| 国产成人久久精品| 日本精品久久电影| 亚洲天堂av图片| 久久国产精品视频| 午夜精品福利电影| 性欧美视频videos6一9| 热re99久久精品国产66热| 国产精品永久免费观看| 久久久久久中文字幕| 欧美激情视频一区二区三区不卡| 国产精品精品一区二区三区午夜版| 日本精品视频在线观看| 亚洲免费成人av电影| 视频在线观看99| 久久人人爽人人爽爽久久| 亚洲加勒比久久88色综合| 亚洲自拍偷拍视频| 色七七影院综合| 欧美性xxxx极品hd欧美风情| 日韩免费av片在线观看| 成人啪啪免费看| 亚洲成人教育av| 亚洲一区二区三区sesese| 最近2019年日本中文免费字幕| 色婷婷综合成人av| 国产精品午夜国产小视频| 色噜噜久久综合伊人一本| 91中文字幕在线观看| 日韩精品视频在线免费观看| 欧美亚洲国产视频小说| 亚洲欧美成人精品| 亚洲欧美日韩区| 色综合天天综合网国产成人网| 亚洲女人初尝黑人巨大| 韩国视频理论视频久久| 国产一区二区三区久久精品| 日韩欧美成人区| 精品女厕一区二区三区| 色悠悠久久久久| 欧美日本黄视频| 黑人巨大精品欧美一区免费视频| 日韩大片免费观看视频播放| 91情侣偷在线精品国产| 欧美成人手机在线| 日韩美女在线看| 欧美性猛交xxxx乱大交极品| 亚洲国产91精品在线观看| 亚洲男人天堂2024|