$on事件,设置一个变量为true
$on event, set a variable to true
这是一个愚蠢的范围问题,我不擅长Javascript。很确定我不知道如何返回一个变量的值到父范围(例如寻找****在AppCtrl
)
我有两个控制器。AppCtrl (parent)
和MainCtrl (child)
<div ng-controller="AppCtrl">
<div ng-controller="MainCtrl">
</div>
</div>
我在MainCtrl
中获取一些随机JSON数据。
.controller('MainCtrl', function ($scope, $http) {
$scope.datas = [];
$http.jsonp('http://filltext.com/?rows=10&delay=1&fname={firstName}&callback=JSON_CALLBACK').
success(function(data){
$scope.datas[0] = data;
console.log($scope.datas);
$scope.$emit('load::1');
});
$http.jsonp('http://filltext.com/?rows=10&delay=2&fname={firstName}&callback=JSON_CALLBACK').
success(function(data){
$scope.datas[1] = data;
console.log($scope.datas);
$scope.$emit('load::2');
});
$http.jsonp('http://filltext.com/?rows=10&delay=4&fname={firstName}&callback=JSON_CALLBACK').
success(function(data){
$scope.datas[2] = data;
console.log($scope.datas);
$scope.$emit('load::3');
});
});
当数据成功时,我将发送一个消息给AppCtrl
。
在AppCtrl
上,我正在监听发出的消息并设置数组var load = true
。
.controller('AppCtrl', function ($scope, $http) {
//*****
var load = [];
$scope.$on('load::1', function(){
//how do i return this value to the var above?
load[0] = true;
});
$scope.$on('load::2', function(){
load[1] = true;
});
$scope.$on('load::3', function(){
load[2] = true;
});
if(load[0]=== true && load[1] === true && load[2] == true) {
console.log('loaded');
}
});
当所有三个设置为true时,我希望console.log
注销'loaded'
。
If condition将只运行一次,因此您可以在每个$on侦听器中调用If condition,或者组合多个侦听器并检查是否加载了所有内容。两种方法都是一样的
myapp.controller('AppCtrl', function ($scope, $http) {
//*****
var load = [];
angular.forEach(['load::1', 'load::2', 'load::3'], function (value) {
$scope.$on(value, function (event) {
load.push(true);
if (load[0] === true && load[1] === true && load[2] == true) {
alert('loaded');
}
});
});
});
小提琴演示
- 它永远不会打印'loaded',因为这个语句只运行一次
if(load[0]=== true && load[1] === true && load[2] == true) {
console.log('loaded');
}
2. 要在Angular的控制器之间共享数据,最好使用services https://docs.angularjs.org/guide/services.
相关文章:
- 导航到特定事件的另一个变量页面
- 我可以在Javascript/jQuery中使用一个变量作为键吗
- 使用mongodb更新中的一个变量
- 将节点数据分配给另一个变量jstree
- Javascript:在激发函数后返回一个变量以供使用
- 替换另一个变量对象中的变量值
- 什么'它的意思是当一个变量位于括号外时
- 可以't将sessionStorage设置为Javascript中的一个变量
- 在Flickr API的标签参数中传递一个变量
- 从Jquery函数中获取一个变量
- 为两个ID设置一个变量的正确语法
- 如何将变量值附加到另一个变量
- 通过加载函数发送一个变量
- 如何将一个变量从一个控制器传递到合金中的另一个控制器
- 如何在Jquery函数中为自动完成文本区域指定一个变量作为Id
- Javascript未在其中一个变量上输出0
- 保留“;这个“;在一个变量中;这个“;使用此变量
- 是否可以在另一个变量中使用未声明的变量
- JS/ANGULAR使用一个变量's值作为另一个对象的键
- 如何每秒从一个变量中提取一定次数的javascript/html