The proper way to do this would be with an angular service. For example:
app.factory('svc', function () {
var msg="original...";
return {
setMessage: function(x) {
msg=x;
},
getMessage: function() {
return msg;
}
};
});
This way you can access the fucntions inside svc
in any controller that you inject svc
into:
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;
});
});
See this demo plunk (I ignored that plunk you provided because it had a lot of noise).
EDIT
Executing the service method and form validation are not really related to each other, see plunk.
EDIT
If you want to use the services or controllers of one app inside another, just reference the dependencies in your main app and call the services defined in your main app inside your second app. If your main app is called demoApp1
, then you could create another app called dempApp2
and reference demoApp1
in demoApp2
and use any services defined in demoApp1
inside demoApp2
. See the plunk I've updated it to demonstrate what you're asking.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…