大佬教程收集整理的这篇文章主要介绍了angularjs – 在子控制器中获取父控制器,它们都使用’controller as vm’表示法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在子控制器中访问父控制器?
请注意’$scope.$parent’不起作用.
然而,’controller as vm’表示法缺少一个使其适用于某些行为的细节:
‘$范围.$parent.vm’
app.controller('childCtrl',[ '$scope',function ($scope) { var vmc = this; // To protected access as vmc.parent Object.defineProperty(vmc,'parent',{ get: function () { return $scope.$parent.vm; } }); } ]);
但是,更改父对象会对基本对象产生副作用,这可以在以下angular.js文档中理解.
JavaScript Prototypal Inheritance
<section class="parent" data-ng-controller="parentCtrl as vm"> <input data-ng-model="vm.name"> <!-- have to change the prefix after the 'as' not to have conflict --> <section class="child" data-ng-controller="childCtrl as vmc"> <input data-ng-model="vm.name"> <!-- same results --> <input data-ng-model="$parent.vm.name"> <!-- same results --> <input data-ng-model="vmc.parent.name"> <!-- same results --> <button data-ng-click="vmc.changename()">Change name</button> </section> </section>
(function(){ var app = angular.module('app',[]); app.controller('parentCtrl',[ '$scope',function ($scope) { var vm = this; vm.name = 'Julia'; } ]); app.controller('childCtrl',function ($scope) { var vmc = this; // To protected access as vmc.parent Object.defineProperty(vmc,{ get: function () { return $scope.$parent.vm; } }); vmc.changename = function(){ vmc.parent.name = 'Other ' + vmc.parent.name; }; } ]); })();
以上是大佬教程为你收集整理的angularjs – 在子控制器中获取父控制器,它们都使用’controller as vm’表示法全部内容,希望文章能够帮你解决angularjs – 在子控制器中获取父控制器,它们都使用’controller as vm’表示法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。