Loading...
borislavml avatar borislavml 368 Точки

[Homework] SPA with AngularJS - Controllers-and-Markup

След много копи-пейст, няколко тутотриала и видеа ето резултата:

ДЕМО  -  КОД  Ъплоуд-а на видео работи само локално на node сървъра!

За скелет ползвам сийд-а от туториала в официалния сайт на Angular цък, който горещо препоръчвам. На 80% си направих нещата от там.Кода в демото е прекрасно обяснен и се минава за два часа. Идеята е да се направят отделни модули за контролерите и филтрите(в случая), които се слагат като депендансита в галвния ни модул на апп-а. В app.js освен модулите си инжектирам и сървисите(май е по-правилно провайдърите) за раутинг ngRoute, и за премахване секюрити(ескейпинг) ишутата ngSanitize , за които Angular така старателно се грижи. Там се конфигурира и на кои урл-та какви паршали да се зареждат, и кои контролери да отговарят за тях. Фактически в index.html има само едно ng-view в бодито, към което се залепят паршалите. Супер чисто и удобно.В js/controllers си правя модул за контролерите. Ползвам $http сървиса. Записвам видета в един videos.json файл. От него си ги гетвам при листване, а при добавяне взимам файла, пушвам новия обект в него,  json.stringify-вам го, и чак тогава го поствам. Учудих се, че тръгна така без истински сървиси но... Естествено ъплоуд на видео работи само локално, защото няма кой да ми рънне node-ския сървър като си го хостна на ICN, а иначе това става от server.bat/sh файла. В js/flters имам модул за филтрите. Единия ползва $sce сървиса, за да ми позволи angular да ng-src-свам линковете за видеата. Понеже ползвам iframe(не намерих по-удачен начин) трябв да се линква ембедед-урл-а от ютуб. С другия филтър просто си дисплелйвам тикчета за true и false на hasSubtitles. Валидацията на формата беше голяма заигравка, особенно да е disabled submit бутона при неверен инпут. Ако не зададеш name и ng-model  на инпутите angular влиза в конфликт с html валидатора и не могат да се разберат кой кво ше прави.

Отново проблем бяха датите. В json файла няма как да нбиеш new Date() и трябва да сложиш едно такова чудовище 1393134567877, и от него да си правиш после дата. Не можах по никакъв начин да разбера коя цифра за коя част от датата отговаря...никаква логикаsealed

Общо взето документация в официалния сайт според мен е супер добре направена и много полезна. Има и dvelopers guide tutorial, който сигурно е доста по-адвансд и полезен smile 

Тагове:
22
JavaScript Applications
presian avatar presian 223 Точки

Човек евала, направо ме смаза, не може да е толкова изчистено направено!laughing

? филтер по дата ? или поне идея как се прави?

0
21/12/2014 20:45:17
petrovaliev95 avatar petrovaliev95 358 Точки

Филтър по дата всъщност става точно като другите филтри, просто формата на датата която ни е дадена в json-а,  незнам поради каква причина, но не бачка  - изкарва я в друг формат, че даже е и грешна. Решението на това (поне аз само намерих) е както го е направил колегата в юникс формата на датата.

0
21/12/2014 21:33:16
borislavml avatar borislavml 368 Точки

Филтъра за години незнма как мога да го подкарам.По принцип просто трябва да се направи един select tag с ng-model="filterByDate.date", със няколко option-и за различните години и във value атрибута да се подаде някакво число, което да отговаря за кокретната година <option value="2014">2014</option>. Накрая буташ едно | filter:filterByDate  в лист айтъма за видео. Само, че коя част от това 1393034567877 в json-a отговаря за годината.....аре да не казвам laughing 

0
petrovaliev95 avatar petrovaliev95 358 Точки

Незнам аз го направих като обикновен search, но незнам защо тези дати ми ги дава в невалидан формат аз въвеждам, 02 месец то ми връща 00.

0
22/12/2014 11:07:52
presian avatar presian 223 Точки

И аз най-после го направих, изпотроших маса време за да ги направя гадните филтри и сортирания. Аз мога да кажа само, че задачата е извратена на база показаното на лекциите (аз съм онлайнар и половината лекция не я чувам понеже лектора води диалог със хората в залата, което ако си на място е ок, но записа е кофти). Който е измислил ангулар е извратен!!!!  Сортирането по дата при мен проработи единствено ако датата, не е дата-обект, а таймстамп (което изисква кустъм функция за сортиране), дължината на видеото пък е стринг и трябва да се направи на някаква годна за сортиране цифра това отново иска функция и още сумати извратени неща. 

Мойта простотия може да я видите тук -> CODE -> DEMO,

както колегата по-горе е обяснил, на демото добавянето просто няма как да работи на този етап!

8
arsoman avatar arsoman 419 Точки

Здравей, поздравления! Само може ли да обясниш що е то Angular Service и има ли почва у нас, защото от лекцията нищо не се разбира, по-точно как запазваш данните на сървър? Доста зле воден курс, този път се изложи яко лектора, само раздава вафли и точки, а преподаването....

Подкрепям 100% presian, просто УНИКАЛНО ЛОШО водене на лекция!

И още повече вече се вбесявам, защото не видях в лекцията нищо за Angular Service или запаметяване на данни на сървъра! Бива ли да се изисква от нас нещо, което не е преподадено!

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

4
24/12/2014 17:59:40
presian avatar presian 223 Точки

Не се занимавай със сървър, това става със един масив в контролера. Просто, няма как да го направиш на този етап, без сам да си напишеш сървъра. Което ще учим следващато ниво. По препоръка на други колеги аз ще прегледам курса на Телерик, че този проект ще има яко "АКИ" иначе.

 

ПС: Няйкой чу ли някакво определение, за каквото и да било в този курс. Аз все още не съм на ясно какво е директива, каква е ролята на контролерите и защо два контролера от един модул не могат лесно да се достъпват един от друг и се правят някави извратени неща за да се случи тази комуникация. Аз съм много разочарован дано да насмгна да изгледам курса на Телерик, че наистина съм мега неориентиран все още а имаме десетина дни за да направим проектите.

3
24/12/2014 18:44:27
Matrix avatar Matrix 1092 Точки

То едно на ръка са обясненията, че ги няма...ама сега видях, че в системата са качени само видеа от камерата... Имам подозрения, че записа на скрийнкаста е бил забравен да бъде пуснат, което мися да го оставя без коментар... Дано да греша и все пак видеата от скрийнкаста да се появат, последната ми надежда е, че просто е забравено да бъдат качени... Иначе този курс ще започне да граничи вече с абсолютния провал...

Към настоящия момент единсвената алтернатива са купищата туториели в нета за Ангулар. Горещо препоръчвам видеата на Ивайло Кенов от Телерик, който принципно съм го признал за един от най-добрите лектори в България [те принципно не са много - Наков и още 2-ма, 3-ма...] и има страхотна способност да обяснява и предава знания. Препоръчвам ви лекциите му, много неща научава човек от тях и още много други му се изясняват, когато няма другаде откъде. Даже бих го препоръчал и като стил на водене на лекции, за всеки които иска да се понаучи да преподава качествено. Аз в момента гледам лекциите от Ангулар курса му и нещата там са обяснени както трябва.

8
25/12/2014 11:30:17
nakov avatar nakov SoftUni Team Trainer 5295 Точки

Липсващата лекция ще бъде качена. Останала е забравена на лекторския лаптоп. Утре се надявам да бъде качена. Междувременно подготвяме Lab за AngularJS, но ще е след празниците.

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.