Angular 中通过 scope.parent 覆盖父类方法的做法合适吗

2025-04-19 14:10:50
推荐回答(3个)
回答1:

楼上没理解提问者的问题,你通过$scope.parent.xx可以跨作用域去替换父级的绑定参数的,这个是没问题的,你也可以使用$scope.parent.parent.xx去替换父级的父级等等。姑且先不说合适不合适,这种方式可以做到:子作用域继承父作用域后可以修改继承过来的参数同时,可以主动修改父级的参数。至于缺点,就是你必须要写死或者说通用性不强(层级关系一旦变化,你就必须要去维护)。总的来讲,能解决问题的方法都是好方法,不然使用parent的意义又在哪?

回答2:

  现在这样的做法不合适吧
  在子类中修改了,但是作用范围扩大到父类中了,也会一并影响其他未定义 validate的子类。
  $scope.edit = function(item) {
  $scope.$parent.validate = $scope.validate(); // 覆盖父类的方法
  $scope.$parent.edit(item);
  }
  这一段应该可以直接删除。不需要了,效果应该是等同的。
  如果是组件尽量 封装成directive 指令, 指令有自己的作用域。 如果是全局变量 可以直接写到$rootscope 下面。
  希望对你有所帮助

回答3:

干嘛要覆盖父类的方法, 直接定义一个跟父类一样名字的方法就默认覆盖了