Comments 23
UFO just landed and posted this here
Не знаю как для новичков, но мне для закрепления полученных на практике знаний, в самый раз. Спасибо!
Спасибо автору за перевод. Действительно, для закрепления знаний весьма полезно. Если вводная статья показалась пустой по содержанию, то, прочитав эту, буду следить за обновлениями.
Кстати, замечал, что использование $rootScope для хранения глобально-доступных данных немного ускоряет работу, в отличае от привызки к объекту window.
Кстати, замечал, что использование $rootScope для хранения глобально-доступных данных немного ускоряет работу, в отличае от привызки к объекту window.
Ну это потому что rootScope сама по себе уже внутри, а поскольку обычно говорят что хранить переменные в глобальной области window это «айайай» то вывод напрашивается сам собой.
PS. Можно поднять планку производительности ещё выше используя сервис через .factory, поскольку при inject'e возвращаться будет один и тот же самый объект. Считается что хранить что-то или обмениваться данными между контроллерами лучше всего так
PS. Можно поднять планку производительности ещё выше используя сервис через .factory, поскольку при inject'e возвращаться будет один и тот же самый объект. Считается что хранить что-то или обмениваться данными между контроллерами лучше всего так
Благодарю за наводку. Получилось что-то вроде этого:
module.factory('MySvc', function () {
var idx = [],
service = {
add: function (id) {
idx.push(id);
},
get: function () {
return idx;
}
}
return service;
});
service = {
Я бы вам не советовал инициализировать глобальную переменную.
Просто интересно, зачем оборачивать массив сверху объектом было? Можно же просто массив вернуть и не морочиться. Хотя если там ещё функций 20 для работы с ним, то тогда вопрос снимается автоматом :)
Вот это вообще гениальная вещь. завтра же поменяю синтаксис всех шаблонов на такой.
template: [
'<div class="compose-email">',
'<input type="text" placeholder="To..." ng-model="compose.to">',
'<input type="text" placeholder="Subject..." ng-model="compose.subject">',
'<textarea placeholder="Message..." ng-model="compose.message"></textarea>',
'</div>'
].join('')
А почему
А не сразу
?
var movie = new MovieService();
movie.update(/*data*/);
А не сразу
MovieService.update(/*data*/);
?
Потому что factory. Понял. Т.е. такой подход создает по одному объекту ресурсу на приложение. А если делать ресурсы через сервисы?
Тогда можно спокойно сразу писать как вы и хотели. Мне так даже кажется удобнее, особенно когда мне необходимо сделать extend сервиса для другой сущности (типично для crud приложений).
Я сейчас посмотрел. Я так и делал. Просто я пришел из Java в AngularJS. Мне пока непонятна разница между фактори и сервисом.
plnkr.co/edit/NKs7X5gVcZmlWN7uPBYN?p=preview А что тут не так <compose-email></compose-email>
Упростил шаблон — но все равно что -то не работает
Упростил шаблон — но все равно что -то не работает
plnkr.co/edit/pkqGZdkjChdyHb9ae2np максимально упростил и приблизил к примеру из статьи — все равно не работает
Разобрался…
Опечатка у Вас
.directive('composeEmail', composeEmail);
вот так надо. т.е. не controller, а .directiveОпечатка у Вас
Шаблоны Angular == Smarty для фронтенда.
С содроганием вспоминаю эпоху шаблонизаторов на бэкенде, теперь же те же грабли повторяем на фронтенде :(
С содроганием вспоминаю эпоху шаблонизаторов на бэкенде, теперь же те же грабли повторяем на фронтенде :(
Sign up to leave a comment.
Учебник AngularJS: Всеобъемлющее руководство, часть 2