gpt4 book ai didi

javascript - 将数组格式化为 JSON 并映射到 ng-repeat 后,复选框列表未填充

转载 作者:行者123 更新时间:2023-11-27 23:18:33 26 4
gpt4 key购买 nike

砰 - https://plnkr.co/edit/2ptIAdOyaIw8mGqpU7Cp?p=preview

发生情况的概要 - onload 执行函数 createObjectFromEntityArrayWithKeys(),该函数格式化值数组以添加两个新键,其中一个属于新值 bool 已检查。新数组 $scope.newEntityArray 是在 $scope 上创建的,并在我的 ng-repeat 中访问。它被分配了新的格式化数据。

这源于一个早期的问题 - 在过滤时/之后保存 ng-repeat 复选框菜单的状态。

因为我正在处理仅包含值的数组,所以我必须更改它以将 bool 值 checked 附加到每个值 - 留下一个 JSON 对象数组。这使我能够保存每个复选框的状态。问题是我认为我的映射不正确,或者我对 ng-repeat 与对象映射的使用是不正确的。我真的不确定为什么列表没有被填充。任何帮助表示赞赏。

编辑

我也尝试过使用两个 ng-repeats,但结果相同:

<div ng-repeat="entity in newEntityArray | filter:simpleFilter">
<div ng-repeat="(val, checked) in entity">
<label> <input
style="display: inline-block; margin-top: 5px"
type="checkbox" ng-model="checked"
ng-change="setModalEntity(val,checked)" /> <a>{{val}}</a>
</label>
</div>
</div>

最佳答案

该问题正是由使用此 onload 从全局范围调用函数引起的。您应该以“Angular 方式”进行重构,尝试这样的事情:

Controller :

var createObjectFromEntityArrayWithKeys = function(){
$scope.newEntityArray = entityArray.map(function(value){
return {"val":value, "checked":false};
});
};

// execute when load the controller
createObjectFromEntityArrayWithKeys();

查看:

我只删除了 onload 属性。

<body ng-app="app">
<div ng-controller = "mainCtrl">
<div>
<input type="text" placeholder="Search" ng-model="simpleFilter">
</div>
<div ng-repeat="entity in newEntityArray | filter:simpleFilter">
<label> <input
style="display: inline-block; margin-top: 5px"
type="checkbox" ng-model="entity.checked"
ng-change="setModalEntity(entity.val,entity.checked)" /> <a>{{entity.val}}</a>
</label>
</div>
{{entityFromSelection}}
</div>
</body>

DEMO PLUNKER

关于javascript - 将数组格式化为 JSON 并映射到 ng-repeat 后,复选框列表未填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35605380/

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