【发布时间】:2015-12-06 00:41:20
【问题描述】:
我无法将值推送到 Ionic/Angular 项目中的嵌套数据。
我想在每天的时间(如果有的话)中添加一个布尔值,我的 json 看起来像这样(我通过严格的 http 调用检索 json,因此不得更改其树结构)。
{
"all_year": true,
"season_from": "01/01",
"season_to": "12/31",
"monday": [
"08:30am"
],
"tuesday": [
"08:30am"
],
"wednesday": [
"08:00am", "09:30am", "01:30pm"
],
"thursday": [
"08:30am", "09:30am"
],
"friday": [
"08:30am"
],
"saturday": [],
"sunday": []
}
我的html
<ion-list ng-repeat="(key, value) in filteredDays"
ng-model="value.checked"
ng-checked ="value.checked">
<div class="item item-divider">
<h3>{{key}}</h3><!--{{value}}--></div>
<ion-toggle ng-repeat="x in value"
ng-model="value"
ng-checked="x"
>
{{x}}
</ion-toggle>
我的 js
$scope.filteredDays={};
$scope.unFilteredDays = {
"all_year": true,
"season_from": "01/01",
"season_to": "12/31",
"monday": [
"08:30am"
],
"tuesday": [
"08:30am"
],
"wednesday": [
"08:00am", "09:30am", "01:30pm"
],
"thursday": [
"08:30am", "09:30am"
],
"friday": [
"08:30am"
],
"saturday": [],
"sunday": []
};
$scope.filteredDays = $scope.unFilteredDays;
//THIS IS WHERE IM STUCK
/*
var checked = false;
$scope.filteredDays.forEach($scope.filteredDays, function(value, key) {
$scope.filteredDays.push(checked);
});
*/
我留下了一条关于我卡在哪里的评论,我似乎无法弄清楚如何将布尔值推送到时间切换项数组。我设置了codepen here
此外,我还尝试在这个项目中使用 lodash 来处理数据(并从列表中获取“all_year”、“season_from”、“season_to”值)并相信我已经正确设置了它,但是,我对它太缺乏经验,无法让它做我想做的事。
任何帮助将不胜感激。
【问题讨论】:
-
只需创建一个日期名称数组并对照它检查键名。如果它在日期名称数组中,则添加布尔值。您可以使用 _.contains 或普通的旧 indexOf 来检查密钥
-
你认为你可以把这个作为另一个答案,并告诉我如何实现我仍在弄清楚 lodash @vbranden
标签: javascript angularjs json ionic lodash