国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

AngularJS中controller控制器繼承的使用方法

2024-05-06 15:24:50
字體:
來源:轉載
供稿:網友

前沿

最近在angularjs項目當中,看到 controller 好多都是重復性的代碼,在 controller 當中有好多代碼很相似 function(比如 controller 下的 CRUD 方法),重復性工作太多。后來想,可不可以提出一個service ,但仔細想想,這些CRUD 本來就是從 Service 中調用的,如果在提出Service,會造成 Service 比較混亂,職責不清晰 。 因為自己做過一些后端,借助后端的思想,是不是可以 controller 繼承。

 controllerservice實現繼承經過一番查閱資料,發現AngularJS已經幫我們提供了controller繼承。我們只需借助 controllerservice 。$controller service api

// 參數的解釋// constructor 可以是 function 也可以是 string //      如果傳入一個 function, 就會當成 controller 的構造函數//      如果傳入一個 string,就會根據字符串去$controllerProvider 找 注冊的 controller//locals 是一個對象,注入來自局部的 controller ,在這里我們認為 child controller$controller(constructor, locals, [bindings])

嵌套控制器中屬性是如何被繼承的?

==屬性值是字符串

myApp.controller("ParentCtrl", function($scope){  $scope.name = "darren";})myApp.controller("ChildCtrl", function($scope){})<div ng-controller="ParentCtrl">  <label>父控制器中的name變量值</label> <input ng-model="name" />  <div ng-controller="ChildCtrl">     <label>子控制器中的name變量值</label> <input ng-model="name" />          <ul>      <li>child controller name: {{name}}</li>      <li>parent controller name: {{$parent.name}}</li>     </ul>  </div></div>

以上,ParentCtrl中的name字段被ChildCtrl分享,但改變ChildCtrl中的name字段值卻不會影響ParentCtrl中的name值,當改變ChildCtrl中的name值,ParentCtrl和ChildCtrl的嵌套關系被打破,再次改變ParentCtrl中的name字段值也不會影響ChildCtrl中的name值。

以上,給ParentCtrl中的變量賦值是字符串類型,如果給ParentCtrl中的字段賦值對象類型呢?

==屬性值是對象

myApp.controller("ParentCtrl", function($scope){  $scope.vm = {    name: "John"  };})myApp.controller("ChildCtrl", function($scope){})<div ng-controller="ParentCtrl">  <label>父控制器中的vm.name變量值</label> <input ng-model="vm.name" />  <div ng-controller="ChildCtrl">     <label>子控制器中的vm.name變量值</label> <input ng-model="vm.name" />          <ul>      <li>child controller name: {{vm.name}}</li>      <li>parent controller name: {{$parent.vm.name}}</li>     </ul>  </div></div>

以上,ParentCtrl中vm對象的被ChildCtrl分享,當然也分享了對象中的name字段,當改變ChildCtrl中的vm.name值會影響到ParentCtrl,也就是不會把ParentCtrl和ChildCtrl之間的嵌套關系打破。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 天柱县| 吉木乃县| 磐石市| 八宿县| 日照市| 汽车| 股票| 灌阳县| 胶南市| 乌鲁木齐县| 武川县| 长治市| 新建县| 云南省| 宁蒗| 江源县| 伊川县| 都匀市| 邵武市| 凤凰县| 本溪市| 清新县| 名山县| 都匀市| 神农架林区| 余庆县| 兖州市| 东莞市| 建昌县| 广安市| 汉沽区| 公安县| 和政县| 舞阳县| 黄大仙区| 尚志市| 通许县| 长丰县| 平泉县| 佛坪县| 湘潭县|