91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

angular的scopel指令如何使用

發布時間:2022-03-15 14:39:47 來源:億速云 閱讀:153 作者:iii 欄目:web開發

這篇文章主要介紹了angular的scopel指令如何使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇angular的scopel指令如何使用文章都會有所收獲,下面我們一起來看看吧。

使用代碼如下:

  <!DOCTYPEhtml><htmllang="en"><head>

  <metacharset="UTF-8">

  <title>Document</title>

  <style>

  .primary{background:red;

  }</style></head><bodyng-app="myApp">

  <divng-controller="mainCtrl">

  <my-btn></my-btn>

  </div>

  <scriptsrc="node_modules/angular/angular.min.js"></script>

  <script>

  varmyApp=angular.module('myApp',[]);

  myApp.controller('mainCtrl',['$scope',function($scope){

  $scope.myClass='primary';

  }]);

  myApp.directive('myBtn',function(){return{

  template:'<inputtype="button"value="按鈕"class="{{myClass}}">'

  }

  });</script></body></html>

  1.png

  使用自定義指令像上面一樣的確不錯,但是如果你想要對每一個指令渲染出來的按鈕定制化,則好像不可以,比如下面我們創建一堆這個自定義指令,他們長得一模一樣:

  <!DOCTYPEhtml><htmllang="en"><head>

  <metacharset="UTF-8">

  <title>Document</title>

  <style>

  .primary{background:red;

  }</style></head><bodyng-app="myApp">

  <divng-controller="mainCtrl">

  <my-btn></my-btn>

  <my-btn></my-btn>

  <my-btn></my-btn>

  <my-btn></my-btn>

  </div>

  <scriptsrc="node_modules/angular/angular.min.js"></script>

  <script>

  varmyApp=angular.module('myApp',[]);

  myApp.controller('mainCtrl',['$scope',function($scope){

  $scope.myClass='primary';

  }]);

  myApp.directive('myBtn',function(){return{

  template:'<inputtype="button"value="按鈕"class="{{myClass}}">'

  }

  });</script></body></html>

  2.png

  一種思路是把這幾個自定義的指令按鈕放到不同的控制器里面,然后控制器里通過$scope上下文傳遞不同的值:

  <!DOCTYPEhtml><html><head>

  <metacharset="UTF-8">

  <title>Document</title>

  <style>

  .primary{background:red;

  }.success{background:green;

  }.default{background:gray;

  }</style></head><bodyng-app="myApp">

  <divng-controller="aCtrl">

  <my-btn></my-btn>

  </div>

  <divng-controller="bCtrl">

  <my-btn></my-btn>

  </div>

  <divng-controller="cCtrl">

  <my-btn></my-btn>

  </div>

  <scriptsrc="node_modules/angular/angular.min.js"></script>

  <script>

  varmyApp=angular.module('myApp',[]);

  myApp.controller('aCtrl',['$scope',function($scope){

  $scope.myClass='primary';

  }]);

  myApp.controller('bCtrl',['$scope',function($scope){

  $scope.myClass='success';

  }]);

  myApp.controller('cCtrl',['$scope',function($scope){

  $scope.myClass='default';

  }]);

  myApp.directive('myBtn',function(){return{

  template:'<inputtype="button"value="按鈕"class="{{myClass}}">'

  }

  });</script></body></html>

  3.png

  這樣寫太麻煩了,所以我們的angular為我們的自定義指令提供了一個配置項叫scope,所以,我們可以如下這樣寫:

  <!DOCTYPEhtml><htmllang="en"><head>

  <metacharset="UTF-8">

  <title>Document</title>

  <style>

  .primary{background:red;

  }.success{background:green;

  }.default{background:gray;

  }</style></head><bodyng-app="myApp">

  <divng-controller="Controller">

  <my-btnb="className1"></my-btn>

  <my-btnb="className2"></my-btn>

  <my-btnb="className3"></my-btn>

  </div>

  <scriptsrc="node_modules/angular/angular.min.js"></script>

  <script>

  varmyApp=angular.module('myApp',[]);

  myApp

  .controller('Controller',['$scope',function($scope){

  $scope.className1='primary';

  $scope.className2='success';

  $scope.className3='default';

  }])

  .directive('myBtn',function(){return{

  scope:{

  a:'=b'

  },

  template:'<inputtype="button"value="按鈕"class="{{a}}">'

  }

  });</script></body></html>

  要看懂上面的只要注意兩點:

  這里的獨立作用域里面的a代表的是template里面的模型a

  =b代表的是要angular去尋找視圖里面的當前指令的屬性b

  屬性b的值需要去外部作用域里面去尋找

  如果你想在指令作用域里綁定的模型的名字和外部使用的時候的屬性名一樣,可以省寫成如下:

  <!DOCTYPEhtml><htmllang="en"><head>

  <metacharset="UTF-8">

  <title>Document</title>

  <style>

  .primary{background:red;

  }.success{background:green;

  }.default{background:gray;

  }</style></head><bodyng-app="myApp">

  <divng-controller="Controller">

  <my-btna="className1"></my-btn>

  <my-btna="className2"></my-btn>

  <my-btna="className3"></my-btn>

  </div>

  <scriptsrc="node_modules/angular/angular.min.js"></script>

  <script>

  varmyApp=angular.module('myApp',[]);

  myApp

  .controller('Controller',['$scope',function($scope){

  $scope.className1='primary';

  $scope.className2='success';

  $scope.className3='default';

  }])

  .directive('myBtn',function(){return{

  scope:{

  a:'='

  },

  template:'<inputtype="button"value="按鈕"class="{{a}}">'

  }

  });</script></body></html>

  當然,上面的=號是雙向數據綁定:

  <!DOCTYPEhtml><htmllang="en"><head>

  <metacharset="UTF-8">

  <title>Document</title>

  <style>

  .primary{background:red;

  }.success{background:green;

  }.default{background:gray;

  }</style></head><bodyng-app="myApp">

  <divng-controller="Controller">

  <my-btna="abc"></my-btn>

  </div>

  <scriptsrc="node_modules/angular/angular.min.js"></script>

  <script>

  varmyApp=angular.module('myApp',[]);

  myApp

  .controller('Controller',['$scope',function($scope){

  $scope.abc='我是初始內容';

  }])

  .directive('myBtn',function(){return{

  scope:{

  a:'='

  },

  template:'<inputtype="text"ng-model="a"><span>{{a}}</span>'

  }

  });</script></body></html>

  如果只是想單向的數據通信,可以用@符號:

  <!DOCTYPEhtml><htmllang="en"><head>

  <metacharset="UTF-8">

  <title>Document</title>

  <style>

  .primary{background:red;

  }.success{background:red;

  }.default{background:red;

  }</style></head><bodyng-app="myApp">

  <divng-controller="Controller">

  <my-btna="primary"></my-btn>

  </div>

  <scriptsrc="node_modules/angular/angular.min.js"></script>

  <script>

  varmyApp=angular.module('myApp',[]);

  myApp

  .controller('Controller',['$scope',function($scope){

  $scope.mm='primary';

  }])

  .directive('myBtn',function(){return{

  scope:{

  a:'@'

  },

  template:'<inputtype="button"value="按鈕"class="{{a}}">'

  }

  });</script></body></html>

  如果想用ng-class,也是可以的:

  <!DOCTYPEhtml><htmllang="en"><head>

  <metacharset="UTF-8">

  <title>Document</title>

  <style>

  .primary{background:red;

  }.success{background:red;

  }.default{background:red;

  }</style></head><bodyng-app="myApp">

  <divng-controller="Controller">

  <my-btna="primary"></my-btn>

  </div>

  <scriptsrc="node_modules/angular/angular.min.js"></script>

  <script>

  varmyApp=angular.module('myApp',[]);

  myApp

  .controller('Controller',['$scope',function($scope){

  $scope.mm=true;

  }])

  .directive('myBtn',function(){return{

  scope:{

  a:'@'

  },

  template:'<inputtype="button"value="按鈕"ng-class="{primary:a}">'

  }

  });</script></body></html>

  最后,還有一個scope可以設置是引用外部作用域的方法

  <!DOCTYPEhtml><htmllang="en"><head>

  <metacharset="UTF-8">

  <title>Document</title>

  <style>

  .primary{background:red;

  }.success{background:red;

  }.default{background:red;

  }</style></head><bodyng-app="myApp">

  <divng-controller="Controller">

  <my-btnfn2="fn()"></my-btn>

  </div>

  <scriptsrc="node_modules/angular/angular.min.js"></script>

  <script>

  varmyApp=angular.module('myApp',[]);

  myApp

  .controller('Controller',['$scope',function($scope){

  $scope.fn=function(){

  alert(11);

  }

  }])

  .directive('myBtn',function(){return{

  scope:{

  fn1:'&fn2'

  },

  template:'<inputtype="button"value="按鈕"ng-click="fn1()">'

  }

  });</script></body></html>

關于“angular的scopel指令如何使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“angular的scopel指令如何使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永修县| 定兴县| 九龙坡区| 镇安县| 丘北县| 西充县| 新乡县| 将乐县| 彩票| 松阳县| 新丰县| 浑源县| 黄梅县| 兴义市| 堆龙德庆县| 富阳市| 红河县| 拉萨市| 大足县| 安岳县| 汤阴县| 安福县| 景德镇市| 海城市| 宁城县| 广灵县| 蓝田县| 南充市| 淳安县| 丰宁| 祁东县| 惠安县| 泾川县| 扶余县| 宁都县| 甘肃省| 九龙坡区| 石家庄市| 桂平市| 萨迦县| 武安市|