Здравейте, колеги
Качвам и моето домашно. Заиграх се малко с 2-ра задача и мисля, че се получи добре, само дето не разбрах как да махна това премигване в началото при зареждане на страницата. Добавих валидация за формата на урл-а и валидноста. Закачих един евент листенер на инпут полето и при всяка промяна прави елемент "имг" и се пробва да му закачи този урл ако хвърли грешка прави полето невалидно. Сигурно има и много по умни варианти, но не можах да се сетя за друг. Пробвах всеки път да правя ajax заявки до url-a, но имах проблем с "CORS".
AngularJs Overview:
Искам да напомня на колегите, че трябва да тестват домашните на сървъра който ни дадоха. Просто трябва да стартирате ".bat" файла ако сте под windows или ".sh" ако сте под linux и сървъра тръгва на "localhost:1234". Ще се радвам на препоръки и критики от колегите.
Поздрави, Даниел
Здравей, за мое съжаление не разбрах почти нищо, явно си напред в материала, та имам въпрос:
за втора задача не може ли просто да ползваме $scope.url = document.getElementsByTagName('url').val; в контролера и да го подадем после на <img ng-src="{{url}}" alt="pic"> в html-a? В смисъл не питам дали ще стане, защото при мен стана, но дали е правилно и ако не, как да вземем данни от input field с angular?
Благодаря!
Arsoman, с Ангюлар може да стане много по-бързо и по-лесно. Решението на колегата е доста подробно и вероятно затова се объркваш, най-простият начин, който показаха и на лекции е следният:
<body ng-app="yourAppName">
<input type="text" ng-model="imageUrl"/> ( създаваш новo пропърти в scope и го кръщаваш imageURL)
<img ng-src="{{imageUrl}}"/> (тук взимаш стойността на пропъртито)
</body>
Karlie, всъщност точно така го направих, но малко спестих код в поста ми, но как да взема в контролера стойността на input-полето, освен с document.getElementsBy.....нещо си?
Мисля, че изобщо не ти трябва контролер. Доколкото разбирам, Angular си има нещо като вградени контролери за своите директиви (или поне за някои от тях). (Директиви са тези заявления, които започват с ng-...(нещо си).
Тоест, за ng-model си има вграден контролер. https://docs.angularjs.org/api/ng/directive/ngModel Поне при мен... няма никакъв контролер, зареден в хтмл-a и си работи. Ето моето решение.
Колеги това ng-model="neshto" се нарича байдване и не ти трябва да взимаш стойноста на полето в джаваскрипт файла. В началото на курса и на мен ми беше странно как така работи, как така само в html-a се случват тези неща. Препоръчвам ви да изгледате лекциите на Ивайло Кенов от Телерик на мен лично много ми помогнаха да разбера някои неща които са много странни. Също така може да изгледате Семинара за Angular в softuni.
petrovaliev95, благодаря за препоръките и насоките за видеата, но нали уж тук и сега учим Angular, някак не бих искал да гледам други видеа, ако това е нужно, значи курса тук е непълен! Иначе малко ми светна с това байндване и наистина не ми трябва контролер, както каза Karlie. Все пак беше нужно повече да се обясни на лекцията, а не тук да се питаме. Благодаря сърдечно и на двама ви!
"Искам да напомня на колегите, че трябва да тестват домашните на сървъра който ни дадоха. Просто трябва да стартирате ".bat" файла ако сте под windows или ".sh" ако сте под linux и сървъра тръгва на "localhost:1234". Ще се радвам на препоръки и критики от колегите."
Здравей, Даниел... Можеш ли да дадеш HINT, къде е качен този сървър и bat файла му... Сърчнах в директорията на курса, но не можах да се ориентирам и да го видя...
@Matrix Сървъра се намира в папката "scripts", а "server.bat" файла е в директорията на проекта.
Имах в предвид, къде е качен този сървър, за да го ползвам, но вече се оправих - изрових някакъв от папката с демата от първата лекция... :)
Ами тъй де, той и Дани Петровалиев има предвид същия сървър - web-server.js, намира се в папката scripts и е същият, като от демото. Само трябва да си смениш името на файла в този ред: var path= "./index.html" с твоето име на файл.
А защо да трябва да тестваме домашните на сървъра, който са ни дали? Не виждам да има такова изискване никъде. WebStorm-a си прави сървър и няма нужда от допълнителни сървъри.
Препоръчано е да се ползва онзи сървър, но ако те затруднява си ползвай web storma.
А грешно ли е, ако си ползвам xampp? Работи на 100% без никакви проблеми?
То при мен нещата си тръгват 100% и на Мозила (като директно си отворя html файловете) и като пипна една настройка на Хрома, да допуска cross origin заявки, и на него. Честно казано, изобщо не разбрах (от първата лекция) защо трябва да пускаме първото домашно през локален сървър.
Естествено, ако тръгна да проверявам домашни и някое не ми се отваря, ще го пусна през localhost, ама иначе, не знам какъв е смисълът...? Просветлете ме, моля.
Технически нямам познанията, за да го обясня защо на Ангулар му е необходим сървър [очаквам Роял да мине да ни просветли, ако види темата :D ], но знам че му е необходим в определени случаи... За тези задачи от това домашно и при мен рънват, но за други може да се наложи... Ако не ни беше необходим сървър, дори самите лекции нямаше да се водят с такъв...
Обяснил съм малко по-надолу.