我有一个按钮,我将ng-model值作为参数传递给它的ng-click功能,现在执行ng-click功能之后,我想将ng-model值发送给另一个控制器,如何我可以使用angular吗?
有办法做到这一点吗?
答案 0 :(得分:1)
控制器之间的通信方式有很多种。
像这样......
function Controller1($scope)
{
$scope.$on('myEvent', function(event, args) {
// do the event
});
// another controller, directive
}
function Controller2($scope)
{
$scope.$emit('myEvent', args);
}
答案 1 :(得分:0)
1.在第一个控制器中,你可以这样做:
$ rootScope。$ broadcast(' eventName',value);
并在第二个控制器中收听事件:
$ scope。$ on(' eventName',function(event,value){// your code});
2.在第一个控制器中将值分配给$ rootScope变量,然后从另一个控制器访问。例如 在第一个控制器
$ rootScope.TestValue =" 10";
在第二个控制器中
<强> $ scope.receiveValue = $ rootScope.TestValue; 强>
3。AngularJS- How to pass data from one controller to another on ng-click()?
答案 2 :(得分:-2)
使用角度服务在2个控制器之间进行通信。 观看此Video
是的$ broadcast将为您效劳。
以下是一些重要部分:
$scope
实例)$broadcast()
事件$on()
的活动
醇>
示例:
<强> HTML 强>
<div ng-controller="ctrl1 as ctrl1">
<button ng-click="ctrl1.hello()">Say hello</button>
</div>
<div ng-controller="ctrl2 as ctrl2">{{ctrl2.messages}}</div>
<强>的JavaScript 强>
angular.module('app', [])
.service('messageBus', ['$rootScope', function($rootScope) {
return $rootScope.$new();
}])
.controller('ctrl1', ['messageBus', function(messageBus) {
this.hello = function() {
messageBus.$broadcast('hello', 'Hi! '); // <= send message
}
}])
.controller('ctrl2', ['messageBus', function(messageBus) {
var ctrl2 = this;
this.messages = '';
console.log(messageBus.mb)
messageBus.$on('hello', function(evt, msg) { // <= receive message
ctrl2.messages += msg;
});
}]);