gpt4 book ai didi

angularjs - 刷新 ng-repeat 数据

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

我有一个包含我所有数据的大列表,还有另一个仅包含选定数据的较短列表。
本来,所有的数据都被选中,所以两个列表是相同的,用户必须取消选中不需要数据的复选框,然后未选中的数据必须从 selected_data_list 中消失。

当页面加载时,两个列表被正确填充。但是当我取消选中不需要的数据时, selected_data_list 不会更新。

我尝试使用 $scope.$apply(),但它给了我这个错误:

Error: $rootScope:inprog Action Already In Progress



这是我的代码:

完整名单:
<div ng-controller="BrainRegionsCtrl">

<div ng-repeat="region in brain_regions">

<label>

<input type="checkbox"
name="checkbox_brain_region__included"
id="checkbox_brain_region_{/region.id/}"
value="{/region.id/}"
ng-model="region.show"
ng-change="update_selected_Brain_regions(region)">

<b>{/region.name/}</b>

</label>

</div>
</div>

选定地区列表:
<div ng-controller="BrainRegionsCtrl">

<label ng-repeat="region in selected_brain_regions">
<input type="radio" name="radio_brain_regions_graphical_search_soma" value="{/region.id/}">
<b>{/region.name/}</b>
</label>

</div>

Controller :
ngApp.controller('BrainRegionsCtrl', function ($scope, $http) {

$scope.brain_regions = [];
$scope.selected_brain_regions = [];

$scope.update_selected_Brain_regions = function (region) {

for (var i = 0; i < $scope.brain_regions.length; i++) {
var current_region = $scope.brain_regions[i];
if (current_region.id === region.id) {
if (region.show) {
$scope.selected_brain_regions.push(current_region);
}
else {
$scope.selected_brain_regions.splice(i,1);
}
}
}
console.log($scope.selected_brain_regions);

};

});

这是一个 jsfiddle
谢谢你。

最佳答案

尝试使用 $rootScope .
因为你给了 ng-controller="BrainRegionsCtrl"对于两个 div 这就是为什么 $scope.selected_brain_regions 将进入第二个 div 中的初始状态。

或者

你应该给 ng-controller="BrainRegionsCtrl"到包含代码的两部分的根 div ..

关于angularjs - 刷新 ng-repeat 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47630956/

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