Ответы пользователя по тегу Angular
  • Сложность пароля, валидация полей и уникальность никнейма с email-ом?

    Посмотрите статью про формы на ангуляре. Там описаны все основные механизмы валиадции. ссылка на статью
    Для сложности пароля можно попробовать поискать директиву готовую, скорее всего кто-то заморочился.
    Ответ написан
    Комментировать
  • Что не так с rout-ингом?

    Ссылка неправильная
    Правильная ссылка должна быть такая(первый параметр в конфиге роута) :
    <button><a href="/#/phones/{{phoneId}}">Посмотреть</a></button>
    Ответ написан
    Комментировать
  • Не лагающий анимированный переход между страницами в Angular?

    Прелоадер можно показывать через комбинацию onRouteChangeStart и параметра resolve в route.
    То есть в resolve возвращаем Promise, который грузит контент, и RouteChangeSuccess не произойдет, пока Promise не срезолвится. Вот здесь неплохая статья про resolve: ode2code
    Прокрутку можно добавить в событие onRouteChangeSuccess например. Не очень понятно, что именно вы имеете ввиду под прокруткой, пример был бы очень кстати.
    По поводу медленного интернета: имеет смысл упаковать все темплейты в .js файл. Для grunt'а есть вот такая штука: github. Она собирает темплейты в js файл и засовывает их в templateCache ангуляра. Будет небольшой оверхед при старте, но дополнительной подгрузки при первом использовании темплейта уже не будет.
    Ответ написан
  • Как использовать ng-if с асинхронной функцией?

    Ваш код делает не то, что вы ожидаете.
    Функция showImage не возвращает ничего (undefined), функция, которая возвращает true в случае корректных размеров вызывается асинхронно и true/false значение возвращается тому, кто эту функцию вызвал.
    Для того, чтобы всё заработало при событии load нужно устанавливать некоторое значение. Судя по всему у вас используется ng-repeat - так что простым вариантом будет просто установка для элемента массива флага isGoodSize в значение true, когда срабатывает ваш ивент.
    img.addEventListener("load", function() {
                var ratio = this.naturalWidth / this.naturalHeight;
                if (ratio > 2) {
                    $scope.items[index].isGoodSize = true;
                } else {
                    $scope.items[index].isGoodSize = false;
                }
            })

    А в html будем иметь следующее:
    <img class="main-img" ng-show="item.isGoodSize" ng-src="{{item.img}}">

    Не забудьте установить значение isGoodSize в false при инициализации массива.
    Ответ написан
    Комментировать
  • Как отрендерить директиву в контроллере?

    Цитата из доки по angular js:
    Angular normalizes an element's tag and attribute name to determine which elements match which directives. We typically refer to directives by their case-sensitive camelCase normalized name (e.g. ngModel). However, since HTML is case-insensitive, we refer to directives in the DOM by lower-case forms, typically using dash-delimited attributes on DOM elements (e.g. ng-model).

    В вашем случае нужно изменить код на :
    var temp = "<div my-dir></div>";
    Ответ написан
    Комментировать
  • Как менять видимость маркера Gooogle Maps?

    Попробуйте использовать custom-marker, с ним все должно быть хорошо. Другой вариант - дописать директиве маркер метод setVisible, т.к. при установке атрибутов идет проверка на наличие setter-метода(см. mapController метод observeAndSet). Например скопировать его из директивы custom-marker.
    Ответ написан
    Комментировать