Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.11.2022, 22:13
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Вставить пункт меню в нужное место
Привет.
console.log(data)
Object { data: Proxy }
data: Proxy { <target>: {…}, <handler>: {…} }
<target>: Object { title: "Испоьзование npm", parent_id: 3 }


console.log(menu)
Proxy { <target>: (3) […], <handler>: {…} }
<target>: Array(3) [ {…}, {…}, {…} ]
0: Object { id: 1, title: "Главное меню", name: "main", … }
1: Object { id: 2, title: "Пользовательское меню", name: "user", … }
2: Object { id: 3, title: "Нижнее меню", name: "footer", … }


мне надо data вставить в menu, как подменю. В каждом меню могут быть свои подменю. И мне нужно, что бы data встала на своё место. В данном случае, как подменю в "Нижнее меню". Начал так

function  addItem(data){
var arr={};
for(var key in this.menu ){
if(this.menu[key].id ==data.data.parent_id ){
arr = this.menu[key] 
}
$(arr).push(data.data);
}
}

Как мне теперь вернуть собранное this.menu
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2022, 12:32
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Решил
addItem(dataForm){
             for(var key in this.menu ){   
                if(this.menu[key].id ==dataForm.data.parent_id ){
                this.menu[key].children.push(dataForm.data)              
                   }              
               }              
           }
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2022, 12:36
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

Сообщение от ureech
this.menu[key].children.push(dataForm.data) 
Не знаю, что у вас за язык (фрейворк), но на обычном js такое не работает.
children - не массив. У него нет метода push
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2022, 22:43
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Сообщение от voraa
children - не массив.
У меня массив)
Просто не указал его в объекте, так как когда писал вопрос не знал, что понадобится. Там так

0: Object { id: 1, title: "Главное меню", name: "main",chidren:Array[{...}] … }

Но вы правы код в vue файле)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите поправить код, определения высоты блоков и их сравнения ozoro jQuery 20 09.11.2019 17:55
Как динимически определять ВЫСОТУ блока при изменении ширины окна браузера? ozoro jQuery 18 27.10.2019 02:38
Разбить выпадающее меню на 5 колонок Igorsrt Элементы интерфейса 17 23.07.2018 21:00
Замена стилей класса Павел Турченко Элементы интерфейса 9 30.10.2015 15:24
Бесконечноуровневое меню на CSS ruslan_mart Ваши сайты и скрипты 5 12.01.2015 20:59