gpt4 book ai didi

javascript - $on 事件,将变量设置为 true

转载 作者:行者123 更新时间:2023-12-03 12:07:13 25 4
gpt4 key购买 nike

这是一个愚蠢的范围问题,而且我不擅长 JavaScript。很确定我不知道如何将变量的值返回到父范围(例如在 AppCtrl 中查找 ****)

我有 2 个 Controller 。 AppCtrl(父级)MainCtrl(子级)

<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 条件只会运行一次,因此您可以对每个 $on 监听器调用 if 条件,或者组合多个监听器并检查是否所有内容都已加载。两种方法是相同的。

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');
}
});
});
});

Fiddle Demo

关于javascript - $on 事件,将变量设置为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25132864/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com