[JS Frameworks] Домашно Mustache.JS


4

Засега само първа задача: 
https://github.com/vlad0/TelerikAcademy/tree/master/JSFrameworks/Mustache.JS

Направих конструктора да взима само брой колони на ред, защото, ако се добави и редове изниква въпроса какво става с данните, когато не се побират в броя зададени клетки/ред*колони/ от потребителя.

Тези домашни са лекички засега и е хубаво да обменяме повече опит, за да разгледаме различни интерпретации, така че пускайте и вашите решения :)

Edit: Добавих и втора задача. Като имат общ темплейт за оценките и ги зареждам всичките направо в браузера по default са hidden. Идеята е, че на click event-а им давам да се display-нат. Въобразявам си, че по този начин има по-малко events. WebApi-то коментирахме с колеги, че е по-удобно да го hardcore-нем с някакъв List<Student>(). Направил съм малък метод за случайни оценки, години и класове.

Варианта за различен template е да запазваме студентите и на техните div-ове да сложим поле data-id= [id-то на студента]. след което в click event-a да намираме студента с това id. По този начин  имаме достъп до marks на студента, и вече можем да ги рендираме през техния си темплейт




Отговори



3

Решение

Аз въобще не разбрах защо ни са тези колони и редове в конструктора, като можем да дадем елементите и да създадем таблицата и тя винаги ще е коректна.


от georgi.ivanov (3261 точки)


0
и аз не разбрах, аз я правя да си създава толкова клетки колкото са и нужни

от stann1 (1378 точки)

0
Не е 1 проперти на студент = 1 колона. Един студент ти е една колонка. За това ти задаваш колко колони да има за да мине на нов ред като ги запълни.

от saykor (8845 точки)


4

Здравейте, колеги, 
Тъкмо реших и втората задача. 
source

Направил съм си и сървърна част, в която има само два сървиса: 1.взима всички студенти, и 2. взима оценките на студент по неговото име., като и в двете съм хардкоднал някакви колекции от студенти с марковете им.

Постарах се да събера целия код в един файл, ама не съм много сигурен дали стана по-разбираемо, за това съм сложил някой друг коментар.

Поздрави!


от zhelyazkovn (2949 точки)


0
Домашното до тази вечер ли е? Вчерашното е до неделя, а това от днес до довечера.



0
не, грешка е. ще го оправят до Неделя ;)

от vlad0 (6103 точки)

0
сигурно ли е, че това е грешка,а не реалния срок,а и искам да попитам ,защо презентацията на Modernizr не може да се свали.А и как така на Rquery.js има обявен срок но няма качени материали.




7

Ето и още един вариант на първа, тъй като бая зор видях когато трябва да се въведат произволни колони или редове  :

само логиката : https://github.com/Polichronov/Mustache/blob/master/Scripts/list-view.js

цялата задача : https://github.com/Polichronov/Mustache

P.S не съм си играл да сменям имената от демото на някои променливи и на js.


от Al.polichronov (1567 точки)


3

Еми, доколкото ми обясни Дончо, след лекцията трябва да зададеш или в колко колони, или в колко реда искаш да ти се впишат студентите. И в зависимост от това така да си направиш логиката, че ако ако подадеш, че искаш в 3 реда да се съберат всичко студенти, функцията ти да сметне по колко колони на ред трябва да се падат. По същия начин и ако избереш да подаваш колони, да сметне редовете и да направи таблица с нужния брой редове.

Домашно.


от tankovski (2828 точки)


7

Ето го и моят вариант на домашното.

Домашно

За първа задача задавам броя на колоните в конструктора.Имам си main.js който е главния файл, другото са помощните  js скрипти. Задачата не се различава много от демото в лекцията.

За втора задача първо показвам имената на студента и годините и създавам един бутон при натискане да показва и самите оценки на студента.

Самите сървизи са стадартни - мога да взема всички студенти и да взема оценките на студент по id. Този курс сега го минахме така че няма да изпадам в подробности.

 


от Божидар Пенчев (0 точки)


1
Имам следния проблем, през fidler заявката за вземане на студентите минава с 200 и връща json със студентите. През клиента ми връща error 404. url e същия като на Fidler, но въобще не влиза в success, клаузата. Идеи? $.ajax({ url: url, type: type, contentType: "application/json", success: function (result) { deferred.resolve(result); },
error: function (errorData) { deferred.reject(errorData); } })

от AsenVal (3487 точки)


0
Ами или url-то е грешно или type.. провери ги пак.. останалите нещата изглеждат добре..

от SVGN_H (3048 точки)

0
да нещата изглежват наред другото което трябва да провериш е дали го връщаш тоя промис

от Божидар Пенчев (0 точки)



7

Ето и моето Решение

Втора задача доста ме измъчи :-))) Направих два темплейта - за студентите и за оценките - както е по условие. 

Рендерирам студентите в таблица - както в първа задача - като всяка клетка от таблицата съдържа информацията за даден студент (без оценките) в "div" с "id" = id на съответния студент. Използвам това id при зареждането на оценките. 

В table-view.js добавих отделен метод, който рендерира оценките на даден студент. Приема като параметър темплейта и id-то на студента.


от sabrie_n (625 точки)


0

Здравейте,

Ето ги и моите задачи.

За втората задача използвах контролера на Дочно за генериране на произволни студенти и оценки.
От клиентска гледна точка имам два контейнера - един за студенти и един за оценки. Поиграх си и го направих при цъкване на даден студент да пуска отделен get request и да му взима оценките. Ако селектирате същия студент скривам контейнера. Има още доста какво да се желае по външния вид, но не мисля, че това е целта на задачата.

Ще се радвам на всякакви съвети и/или критики.

Поздрави!


от nikolaikolarov (2177 точки)


2

Ето и мойте задачи, без CORS, защото не работи.
За първа задача ползвам както студентите от базата, така и локален масив със студенти (закоментирания код).
За втора задача си направих един div с всички студенти и когато се кликне на някой, имам една таблица, в която се попълват оценките само на кликнатия студент, ако се кликне друг студент, се попъват неговите оценки. Интерестно решение се получи.


от AsenVal (3487 точки)