Как в объекте вывести первый элемент массива в 6-м, там, где this[0].dates.begin

Рейтинг: 0Ответов: 1Опубликовано: 09.01.2015
$scope.shedule = [
            {'filter': [1, 6, 7],
                'name': 'Уровень 1',
                'opened': {'begin': 0, 'end': 0},
                'readonly': null,
                'dates': {'begin': null, 'end': null}
            },
            {'filter': [2, 6, 7],
                'name': 'Уровень 2',
                'opened': {'begin': 0, 'end': 0},
                'readonly': null,
                'dates': {'begin': null, 'end': null}
            },
            {'filter': [3],
                'name': 'Уровень 3',
                'opened': {'begin': 0, 'end': 0},
                'readonly': null,
                'dates': {'begin': null, 'end': null}
            },
            {'filter': [4],
                'name': 'Уровень 4',
                'opened': {'begin': 0, 'end': 0},
                'readonly': null,
                'dates': {'begin': null, 'end': null}
            },
            {'filter': [5],
                'name': 'Манифестация изобилия',
                'opened': {'begin': 0, 'end': 0},
                'readonly': null,
                'dates': {'begin': null, 'end': null}
            },
            {'filter': [6, 7],
                'name': 'Уровень 1+2',
                'opened': {'begin': 0, 'end': 0},
                'readonly': 'true',
                'dates': {'begin': this[0].dates.begin, 'end': null}
            },
            {'filter': [7],
                'name': 'Уровень 1+2+Vip',
                'opened': {'begin': 0, 'end': 0},
                'readonly': 'true',
                'dates': {'begin': null, 'end': null}
            }
        ];

По сути, как по-нормальному следить за изменением этой модели и в 5-элемент массива ткнуть дату с 1-го в начало и со второго в конец?

Ответы

▲ 2Принят

Можно попробовать так:

$scope.$watch('shedule', function(shedule) {
    shedule[5].dates.begin = shedule[0].dates.begin;
    shedule[5].dates.end = shedule[1].dates.end;
}, true);