Форум программистов, компьютерный форум, киберфорум
JavaScript: Node.js
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 20.10.2014
Сообщений: 20
1

Meteor.js: почему дублируются элементы?

03.12.2014, 18:33. Просмотров 564. Ответов 1
Метки нет (Все метки)


Добрый день,
Беспокоит проблема - уже руки опускаются. Создаю проект на Meteor.js. Использую библиотеку nestedSortable для создания вложенного списка, с drag`n`drop элементами. При изменении структуры списка идет обновление поля sort в базе данных в формате JSON, наподобие [{"id":"1417619247009","children":[{"id":"1417619241424"}]}].

После, из которого восстанавливается список в нужной сортировке, с помощью рекурсивной функции, которая работает и возвращает корректный результат.
Самое интересное, что когда я использую базу данных и вытаскиваю задание из вложенного списка на уровень ниже, то он просто дублируется, что довольно странно, ведь в шаблон идет корректная информация. Вот пример дупликации:
С добавлением в бд
Самое интересное то, что если убрать обновление сортировки в бд, то все работает корректно)
Без добавления в бд
Приведу немного кода, чтобы было понятнее))
Кликните здесь для просмотра всего текста

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Template.item.helpers({
    tasklist: function () {
        if (Meteor.user()) {
            var task = null,
                result = [],
                sorting = null;
            if (Meteor.user().sort) {
                task = Task.find({user_id: Meteor.userId()}).fetch()
                sorting = JSON.parse(Meteor.user().sort);
                sorting.forEach(function(current_item) {
                    //Рекурсивная функция здесь
                    var nested = taskFilter (current_item, task);
                    result.push (nested);
                });
            }
            else {
                return task;
            }
            return result;
        }
    }
});
function taskFilter (item, all) {
    var result = [];
    $.map(all, function (task) {
        if (task.id == item.id) {
            if (item.children) {
                task.children = []
                item.children.forEach(function(child) {
                    var children = taskFilter (child, all);
                    task.children.push (children);
                    //console.log (result);
                });
            }
            return result = task;
        }
    });
    return result;
}

Кликните здесь для просмотра всего текста

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<template name="item">
    {{#each tasklist}}
        {{>taskitem}}
    {{/each}}
</template>
<template name="taskitem">
    <li class="task-item">
        ....
        {{#if children}}
            <ul>
                {{#each children}}
                    {{>taskitem}}
                {{/each}}
            </ul>
        {{/if}}
    </li>
</template>

Надеюсь на вашу помощь.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2014, 18:33
Ответы с готовыми решениями:

Не работает meteor.js
Зравствуйте! Поставил себе meteor.js. Создал проект. Зашёл в его директорию. Запускаю, а он не...

Почему дублируются значения в массиве
Делаю запрос: $id_category=mysqli_fetch_row(mysqli_query($link,&quot;select *from...

Табулирование функции (почему значения дублируются?)
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;locale.h&gt; #include &lt;math.h&gt; int main()...

Почему в столюец дублируются значения логарифма?
Не могу понять, почему в столбец F! дублируются значения логарифма из столбца ln(x). п.с. не...

1
qm
25 / 24 / 7
Регистрация: 15.08.2014
Сообщений: 60
04.12.2014, 12:49 2
По тому коду что есть о проблеме можно только предполагать.
После обновления страницы лишний элемент пропадает?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2014, 12:49

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Почему при выводе строки дублируются?
Скажите, пожалуйста, ОЧЕНЬ СИЛЬНО ПРОШУ, вопрос жизни и смерти! Почему у меня из файла читает так...

Дублируются элементы при выводи компонентом bitrix:news.line
Здравствуйте! Возникла такая проблема, мне нужно вывести элементы из двух инфоблоков, вывел я их с...

SSR meteor
В общем такое дело... Есть сайт, на дотнете. Задача мне казалась очень необычной, поэтому я пошел к...

Программирование на веб-платформе meteor
Доброго времени суток! Есть задание: сгенерировать юзеров в базу, вывести на страницу список этих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.