我正在阅读关于Angular验证的这篇文章,并认为在我自己的项目中使用它会很好.它的工作非常好,我希望在成功验证表单后扩展它访问其他控制器中的方法.我尝试了各种方法,但我似乎无法看到$ scope对象中的方法.
Simple Login Form
我希望有人可以告诉我我缺少什么才能使这项工作.我分叉了一个傻瓜.
这样做的正确方法是使用角度服务.例如:
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
和参考demoApp1
的demoApp2
,并使用定义的任何服务demoApp1
里面demoApp2
.看到插件我已经更新它以证明你在问什么.