推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
johnnyb

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

  •  
  •   johnnyb · Nov 5, 2013 · 9700 views
    This topic created in 4571 days ago, the information mentioned may be changed or developed.
    例如

    还是应该把子类中的 validate() 作为参数,传给父类的 edit ?
    5 replies    1970-01-01 08:00:00 +08:00
    RobinFai
        1
    RobinFai  
       Nov 5, 2013
    我是来给楼主加人气的....
    现在这样的做法不合适吧?
    在子类中修改了,但是作用范围扩大到父类中了,也会一并影响其他未定义 validate的子类。
    $scope.edit = function(item) {
    $scope.$parent.validate = $scope.validate(); // 覆盖父类的方法
    $scope.$parent.edit(item);
    }
    这一段应该可以直接删除。不需要了,效果应该是等同的。
    RobinFai
        2
    RobinFai  
       Nov 5, 2013   ❤️ 1
    @RobinFai 好吧,我错了。作用域的问题搞混了。

    validate还是接受参数吧...
    anjianshi
        3
    anjianshi  
       Nov 5, 2013   ❤️ 1
    不太建议这样,容易引入很难察觉的 bug ,但也许你可以这样:
    https://gist.github.com/anjianshi/7315688#file-gistfile1-js
    johnnyb
        4
    johnnyb  
    OP
       Nov 5, 2013
    楼上二位已感谢

    忘了说明,我 ParentCtrl.validate() 函数是空的,parentValidateFn 这一步可以省略吧?
    jinwyp
        5
    jinwyp  
       Nov 6, 2013
    看不懂具体做什么, 如果是组件尽量 封装成directive 指令, 指令有自己的作用域。 如果是全局变量 可以直接写到$rootscope 下面。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   939 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 21:24 · PVG 05:24 · LAX 14:24 · JFK 17:24
    ♥ Do have faith in what you're doing.