Angularjs在控制器之间共享方法

 Kathy-辜 发布于 2023-01-30 14:00

我正在阅读关于Angular验证的这篇文章,并认为在我自己的项目中使用它会很好.它的工作非常好,我希望在成功验证表单后扩展它访问其他控制器中的方法.我尝试了各种方法,但我似乎无法看到$ scope对象中的方法.



  
    
    
    
    
    
  

  
    

Simple Login Form

Required
Required

我希望有人可以告诉我我缺少什么才能使这项工作.我分叉了一个傻瓜.

1 个回答
  • 这样做的正确方法是使用角度服务.例如:

    app.factory('svc', function () {
        var msg="original...";
        return {
            setMessage: function(x) {
                msg=x;
            },
            getMessage: function() {
                return msg;
            }
        };
    });
    

    这样您就可以svc在注入的任何控制器中访问内部的功能svc:

    app.controller("ctrl1",function($scope,svc,$timeout){
      $scope.someText=svc.getMessage();
      $scope.$watch("someText",function(v){
        svc.setMessage(v);
      });
    });
    
    app.controller("ctrl2",function($scope,svc){
      $scope.msg=svc.getMessage();
      $scope.$watch(svc.getMessage,function(v){
        $scope.msg=v;
      });
    });
    

    看到这个演示插件(我忽略了你提供的插件,因为它有很多噪音).

    编辑

    执行服务方法和表单验证并不真正相互关联,请参阅plunk.

    编辑

    如果您想在另一个应用程序中使用一个应用程序的服务或控制器,只需引用主应用程序中的依赖项,并在第二个应用程序内调用主应用程序中定义的服务.如果你的主要应用程序被称为demoApp1,那么你可以创建一个名为另一个应用程序dempApp2和参考demoApp1demoApp2,并使用定义的任何服务demoApp1里面demoApp2.看到插件我已经更新它以证明你在问什么.

    2023-01-30 14:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有