- Vue-Laravel single file
12
WT форуми -> HTML / Javascript / CSS -> Vue-Laravel single file
Създайте нова тема Напишете отговор 
Автор Съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 82
Bonus: 176
Мнения: 1722
Мнение 31/07/2018 11:32 am      Отговорете с цитат


anonimen написа:
Доколкото виждам, ей тук задаваш по дефолт всички да са unselected:

selected: {default: false}

Т.е. ще замениш false с проверка за this.name в location.hash.


Не можах да те разбера къде да направя проверката и как?
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 156
Bonus: 311
Мнения: 1441
Мнение 31/07/2018 12:52 pm      Отговорете с цитат


teroristd написа:
anonimen написа:
Доколкото виждам, ей тук задаваш по дефолт всички да са unselected:

selected: {default: false}

Т.е. ще замениш false с проверка за this.name в location.hash.


Не можах да те разбера къде да направя проверката и как?


На този ред

selected: {default: false}

задаваш по подразбиране всеки таб да *не* е избран.

Ти искаш по подразбиране да бъде избран този таб, който отговаря на location.hash-а (това след # в URLто)

Затова, вместо да казваш false за всички, ти трябва обратната на тази функция, която използваш за генериране на location.hash-а:

return '#' + this.name.toLowerCase().replace(/ /g, '-');

Т.е. вместо false, ще провериш дали "this.name.toLowerCase().replace(/ /g, '-');" отговаря на location.hash-a:

Javascript code:
selected: {
default: this.name.toLowerCase().replace(/ /g, '-') === location.hash
}
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 156
Bonus: 311
Мнения: 1441
Мнение 31/07/2018 12:57 pm      Отговорете с цитат


Всъщност, както гледам, май няма да стане толкова просто, защото в {} аргумента на Vue.component(), който подаваш, this.name няма да работи така.

Не съм работил с Vue, само предположих, че така ще тръгне, ама явно не Sad

И по-добре отвори нова тема за новия въпрос Idea
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
teroristd
Редовен
Редовен

Регистриран на: 18/02/2010 1:50 pm

Support: 82
Bonus: 176
Мнения: 1722
Мнение 31/07/2018 1:10 pm      Отговорете с цитат


Така ми вади грешка.
Uncaught TypeError: Cannot read property 'toLowerCase' of undefined...
А ако махна this от name няма грешка но нищо не се случва.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
anonimen
Активен
Активен

Регистриран на: 11/06/2012 8:07 pm

Support: 156
Bonus: 311
Мнения: 1441
Мнение 02/08/2018 11:04 am      Отговорете с цитат


teroristd написа:
Така ми вади грешка.
Uncaught TypeError: Cannot read property 'toLowerCase' of undefined...
А ако махна this от name няма грешка но нищо не се случва.

Може би си пропуснал предното ми мнение - не съм запознат с/използвал никога Vue.

this.name използвах, за да взема името на текущия таб, но понеже това е в property-то на обект {}, се използва this референцията от външния scope, а не този на обекта.

Но, явно Vue.component се използва за статична дефиниция на компонент, а задаването на property (в случая "default") с функция (а не от compile-time константа като false) не се прави така. Предполагам, че трябва да го пъхнеш в computed, и Vue да ти го извика - не знам.

Ще погледна какво пише в docs, а междувременно опитай да откриеш къде се задава defaultовия select.

Виждам, че в html темплейта си задал :selected="true"

Предполагам вместо true, ще трябва да сложиш някаква променлива, която пък ще дойде от дефиницията на компонента и ще зададеш в computed property-то.
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:    
Създайте нова тема   Напишете отговор    web-tourist.net Форуми -> HTML / Javascript / CSS Часовете са според зоната GMT + 2 Часа
12
Страница 2 от 2


 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети