Dima
только запускать промисы по-новой
так а как их запускать по новой если они по всем сервисам розтиканы))
Dima
при ините сервисов вытягивал названия и начилась работа
Nikolai
$translate.instant
Dima
$translate.instant
это типа вместо use?
Dima
чет запутался)
Nikolai
вместо $translate(['MENU.SINGLE'']).then((data) => {})
Dima
а чем это поможет? когда будет вызыватся use то будут переводится и те что были найдены с помощью instant а не промиса?
Nikolai
поможет тем, что инстант в сервисах будет переводить синхронно и не будет зависеть от вызова юзов
Dima
Дико извиняюсь что туплю, но всеравно не понятно. Давай еще раз. У меня в контроллерах и сервисах розтыканы промисы и вначале брали перевод и дальше уже с ним чет делали. Была проблема что когда я менял в реал тайме с помощью use язык, то менялись те которые были обьявлены в верстке, а в контроллерах и сервисах такие и оставались. Теперь ты предлагаешь вместо промиса использовать instant, типа вначале делаю чет типа const translate = $translate.instant(id) и дальше уже юзаю.
Dima
Но когда я вызову use, то оно разве изменит?
Nikolai
не изменит. Не надо заранее переводить
Nikolai
в контроллере вообще не надо переводить
Nikolai
в сервисах переводить на лету
Dima
ну это актуально если в функциях каких-то, а что если я делаю какой-то массив в сервисе вначале приложения и который не меняется? А потом его прохожу в верстке ng-repeat?
Nikolai
в вёрстке и переводить
Dima
можешь пример? в сервисе есть чет такое this.modeList = [ {name: data['MENU.SINGLE']}, { name: data['MENU.SETUP']}, { name:data['MENU.REPLAY'}]; потом в верстке прохожу ng-repeat и вывожу названия Как в таком случае?
Nikolai
div(ng-repeat="") {{row.name | translate}}
Dima
😂
Плохо так?
Dima
div(ng-repeat="") {{row.name | translate}}
можна еще раз плз вот попробовал и не взлетело. есть такой вот массив в контроллере $scope.languageList = [ { id: 1, title: $translate.instant('SETTINGS.UKRAINIAN'), langKey: 'uk' }, { id: 2, title: $translate.instant('SETTINGS.ENGLISH'), langKey: 'en' } ]; по нему в верстке ng-repeat бегает меняю язык $translate.use(lang.langKey); но массив то тот же остался, надо создавать функцию какую-то которая будет апдейтить массив?
Nikolai
$scope.languageList = [ { id: 1, title: 'SETTINGS.UKRAINIAN', langKey: 'uk' }, { id: 2, title: 'SETTINGS.ENGLISH', langKey: 'en' } ]; div(ng-repeat="row in languageList") {{row.title | translate}}
Dima
$scope.languageList = [ { id: 1, title: 'SETTINGS.UKRAINIAN', langKey: 'uk' }, { id: 2, title: 'SETTINGS.ENGLISH', langKey: 'en' } ]; div(ng-repeat="row in languageList") {{row.title | translate}}
а если вывод делается какой-то библиотекой и нет доступа к верстке что бы прописать | translate
Dima
типа amchart
Nikolai
а если вывод делается какой-то библиотекой и нет доступа к верстке что бы прописать | translate
Тогда ловить событие смены языка и в сервисе перехуячивать переврд
Nikolai
Как ловить, не помню
Dima
типа у $translate есть апи какое-то?
Nikolai
Наверняка
Nikolai
Ну или ты же сам инициируешь смену
🎋🎋🥷 ngSamurai
@DimaNazdratenko amchart дает возможность сделать собственный враппер для вывода лейблов.. поищи в доке
Artem
Нужна помощь ребят. Собственно решил воспользоваться "Typeahead (ui.bootstrap.typeahead) Static arrays" для автокомплита отсюда https://angular-ui.github.io/bootstrap/ . По примеру оттуда это то что надо. Но при использовании кидает следующуюю ошибку: Error: [$compile:multidir] Multiple directives [debounce, uibTypeaheadPopup] asking for new/isolated scope on: <ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+'px', left: position().left+'px'}" role="listbox" aria-hidden="{{!isOpen()}}" uib-typeahead-popup="" id="typeahead-252-8580" matches="matches" active="activeIdx" select="select(activeIdx, evt)" move-in-progress="moveInProgress" query="query" position="position" assign-is-open="assignIsOpen(isOpen)" debounce="debounceUpdate">
Nikolai
Очевидно, что на один тег повесил 2 директивы, создающие свои скоупы. Показывай код
Nikolai
Дебаунс надо убрать в инпут, наверно
Artem
Очевидно, что на один тег повесил 2 директивы, создающие свои скоупы. Показывай код
Весь выкладывать много, это как раз то что относится к автокомплиту и отчего ошибка могла быть: Шаблон: form ng-submit="sendTheatreRequest()"> <script type="text/ng-template" id="customPopupTemplate.html"> <div class="custom-popup-wrapper" ng-style="{top: position().top+'px', left: position().left+'px'}" style="display: block;" ng-show="isOpen() && !moveInProgress" aria-hidden="{{!isOpen()}}"> <p class="message">select location from drop down.</p> <ul class="dropdown-menu" role="listbox"> <li class="uib-typeahead-match" ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{::match.id}}"> <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div> </li> </ul> </div> </script> <input type="text" ng-model="selected" uib-typeahead="state for state in states | filter:$viewValue | limitTo:8" class="form-control"> А это js: import 'angular-ui-bootstrap' $scope.selected = undefined; $scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii']; // create a module export default angular.module(name, [ angularMeteor, 'ui.bootstrap', 'ui.bootstrap.typeahead', 'ui.bootstrap.debounce', 'g1b.datetime-range', 'g1b.datetime-inputs', 'g1b.scroll-events' ]).component(name, { template, controllerAs: name, controller: Artists }) .config(config);
DrRastafarai
Всем привет. Есть у меня элемент <nav role="navigation" data-ng-controller="Navigation as vm" class="left-menu left-menu-ucp" ng-class="{ 'opened': vm.isOpened }" > Почему то при ресайзе, если выполнилось условие, и vm.isOpened стает false (консоль показывает, что false) класс opened не убирается. Как лечить?
Rem1te
или
Rem1te
вызвать дайджест цикл
Rem1te
если ресайз хендлится вне ангуляра
DrRastafarai
или
Помог $scope.apply() Но это только с тру фолс А если я хочу переназначить на значение с другой переменной, то не работает. В понедельник буду гуглить)
Nikolai
Ок. Но не бывает такого, что в контроллере одно значение, а в шаблоне другое, и это зависит от аплая
DrRastafarai
Ок. Но не бывает такого, что в контроллере одно значение, а в шаблоне другое, и это зависит от аплая
function toggleOpenResize() { var qqq = JSON.parse(isOpenLocalVal); (window.innerWidth < 768) || (window.innerHeight <= 700 && window.innerWidth < 1024) ? ( body.classList.remove('modal-open'), body.classList.remove('stop-scrolling'), $scope.$apply('main.isOpened = false') ) : ( localStorage.getItem('isOpenUCPMenu') === null ? ( $scope.$apply('main.isOpened = true') ) : ( $scope.$apply('main.isOpened = qqq'), console.log(main.isOpened) ), body.classList.remove('modal-open'), body.classList.remove('stop-scrolling') ) } Собственно вот. Сменить на true/false получается, а взять значение с какой то переменной нет(
Nikolai
$scope.$apply('main.isOpened = true') ого а так можно было
Rem1te
а зачем вы вешаете нативный ресайз? повесьте ангуляровский
DrRastafarai
Rem1te
ага
Rem1te
и тогда вам не нужн обудет дергать дайджест руками
DrRastafarai
Ок, спасибо!
Sheridan
Щастья всем... Народ, чтото я никак распарсить не могу... Lexer Error: Unexpected next character at columns 0-0 [С] in expression [Страна]. в шаблоне {{ $ctrl.caption }} в компоненте bindings: { caption: '<' } использую как <report-filter caption='Страна' />
Sheridan
чего ему надо?...
Nikolai
<report-filter caption="'Страна'" />
Nikolai
почему нет?
Sheridan
почему в show-hide понимает а в фильтре нет?
Nikolai
там это атрибут
Nikolai
тут байндинг
Nikolai
по-моему, самозакрытые теги это ошибочные теги: In HTML5, the meaning of <foo /> depends on the type of element. On HTML elements that are designated as void elements (essentially "An element that existed before HTML5 and which was forbidden to have any content"), end tags are simply forbidden. The slash at the end of the start tag is allowed, but has no meaning. It is just syntactic sugar for people (and syntax highlighters) that are addicted to XML. On other HTML elements, the slash is an error, but error recovery will cause browsers to ignore it and treat the tag as a regular start tag. This will usually end up with a missing end tag causing subsequent elements to be children instead of siblings. Foreign elements (imported from XML applications such as SVG) treat it as self-closing syntax.
Nikolai
если, конечно, док не объявлен как xhtml
؜aaaaaaa
Ребят, кто работал с leaflet.js?
Давид
Привет всем, ребят на (mozilla firefox) нет работает event ng-click на input с атрубутом disabled , а на Chrome все ок. как я могу это зафиксиц , заранее спасибо 👍
Давид
сделай обёртку над инпутом и лови клик по нему
да я так и сделал, и через z-index обёртку поднимал наверх и дабаил opasity чтоби видеть инпут, но с opasity click сново не работает в mozilla просто у меня dropdown и инпут должен бить виден, что скажте
Nikolai
Css как вариант
Давид
Input: disabled {pointer-events: none}
Спасибо попробую напишу 👍
Sheridan
щастья всем. Камрады, а можно как нибудь, гм... получить указательна input? Ну, то что об jquery делается об $('#id')
Sheridan
datepicker нужен...
Sheridan
катотак
Sheridan
$onInit кстати это какойто кейворд?
Максим
datepicker нужен...
Не варик взять готовый дат пикер и глянуть что там? Я думаю там jQuery юзается.. выборка сама..
Sheridan
да есть тут готовый. Но код писал профессионал в пхп...
Sheridan
а... получаетса ангуляр jq не отменяет..
Sasha
Нужно найти элемент? Я просто не совсем понял вопрос