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

2013-11-05 11:11:57 +08:00
 johnnyb
例如
https://gist.github.com/twlz0ne/7313219
还是应该把子类中的 validate() 作为参数,传给父类的 edit ?
8803 次点击
所在节点    JavaScript
5 条回复
RobinFai
2013-11-05 15:58:19 +08:00
我是来给楼主加人气的....
现在这样的做法不合适吧?
在子类中修改了,但是作用范围扩大到父类中了,也会一并影响其他未定义 validate的子类。
$scope.edit = function(item) {
$scope.$parent.validate = $scope.validate(); // 覆盖父类的方法
$scope.$parent.edit(item);
}
这一段应该可以直接删除。不需要了,效果应该是等同的。
RobinFai
2013-11-05 16:18:24 +08:00
@RobinFai 好吧,我错了。作用域的问题搞混了。

validate还是接受参数吧...
anjianshi
2013-11-05 16:37:39 +08:00
不太建议这样,容易引入很难察觉的 bug ,但也许你可以这样:
https://gist.github.com/anjianshi/7315688#file-gistfile1-js
johnnyb
2013-11-05 22:48:31 +08:00
楼上二位已感谢

忘了说明,我 ParentCtrl.validate() 函数是空的,parentValidateFn 这一步可以省略吧?
jinwyp
2013-11-06 17:15:48 +08:00
看不懂具体做什么, 如果是组件尽量 封装成directive 指令, 指令有自己的作用域。 如果是全局变量 可以直接写到$rootscope 下面。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/88070

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX