Anonymous
да
Anonymous
привык порст уже юзать yarn без флагов
Anonymous
через импорт работает не потому что есть index.js, а потому что в node_modules/angular/package.json есть main
Yuri
жквери-то тебе нахуя
дык он ее юзает, драгдроп-то
Yuri
иначе ругается в духе Uncaught TypeError: Cannot read property 'fn' of undefined at angular-dragdrop.js?7970:414 at Object../node_modules/angular-dragdrop/src/angular-dragdrop.js (angular-dragdrop.js?7970:419) at __webpack_require__ (bootstrap 0bf6adb…:585) at fn (bootstrap 0bf6adb…:109) at Object../src/app/app.module.js (app.module.js?2d8b:2) at __webpack_require__ (bootstrap 0bf6adb…:585) at fn (bootstrap 0bf6adb…:109) at Object.0 (app.bundle.js:15) at __webpack_require__ (bootstrap 0bf6adb…:585) at webpackJsonpCallback (bootstrap 0bf6adb…:21)
Yuri
блин, и с ней тоже ругается на то же самое
Anonymous
это скорее всего потому что angular-dragdrop хочет жквери в window
Yuri
import $ from 'jquery'; import jQuery from 'jquery'; window.$ = $; window.jQuery = jQuery; import angular from 'angular'; import 'angular-dragdrop';
Yuri
но я это делаю в app.module.js
Anonymous
Чуваки кто-то прикручивал робокасу на ангуляровкий проект?
Aleksei
итак, давай по порядку
Denis
Давай по порядку через 20 минут. Я в магазин вышел. Мне вопрос реально интересен, не для решения проблемы а для понимания.
Aleksei
окей
Denis
И так, мне нужно место в компоненте в котором я мог бы сделать $element.find и гарантированно найти dom элемент который есть в этом компоненте
Denis
окей
на 10 минут опаздал=(
Aleksei
нуэ...а у тебя шаблон..мгм...даже не знаю как сформулировать вопрос. в общем - $postLink. но вот лично у меня это всё норм отрабатывает во всё lifecycle и в конструкторе
Aleksei
Aleksei
у тебя там что-то происходит пост-фактум или как?
Denis
Я тут покопался в своем шаблоне. В нем на теге video висит ng-if, когда я его убрал элемент video сразу нашелся везде. В данном случаи мне этот ng-if там не нужен, но что делать если когда нибудь реально понадобится?
Denis
Denis
Вот так он выглядит, type биндится
Denis
и в этом виде тэг не найти нигде, не в init, не в link
Aleksei
канеш, его ж нет)
Denis
так postLink же заявлен как когда уже все собрано в кучу
Denis
я прочитал в доке
Denis
и кроме того, когда у меня страница грузится onChanges успевает найти video, а вот когда через ng-repeat он добавляется мой компонент, уже ни кто не успевает его найти
Denis
но при загрузке страницы я подозреваю onChanges успевает до момента как элемент вырезан из шаблона, так как после init уже его не видит
Aleksei
ты знаешь точно, когда срабатывает $onChanges?
Denis
раньше всех
Aleksei
нет
Denis
когда односторонний биндинг меняется
Denis
ну как нет, я же консоль вижу
Aleksei
он срабатывает, когда ты меняешь ссылку на то, что ты прокидываешь клювом в компонент
Aleksei
раньше всех
он срабатывает не в какой-то определённый момент
Aleksei
у него нет порядка, в отличие от других хуков
Denis
да, но по факту он срабатыает до init компонента, даже на твоей картинке
Denis
ну скажем так, у моего компонента на верху есть свой ng-if, так вот ng-if получает true, срабатывает onChanges, после этого init
Denis
самого компонента
Denis
в общем в данный момент проблема решена, но что же делать когда реально понадобится внутри на тэг видео навесить ng-if я не представляю
Aleksei
если ты хочешь узнать, когда тег появится внутри компонента по изменению своей внутренней модели - просто подпишись на неё в конструкторе
Denis
ого! а как? я про такое кажется не слышал
Aleksei
ну всмысле
Aleksei
$watch
Denis
$watch внутри компонента?
Aleksei
вотчи свой тайп
Aleksei
ну по идее ещё в doCheck можно проверять
Aleksei
я с этим хуком не работал,но возможно в нём будет правильней узнавать об изменениях внутри компонента
Aleksei
да и ещё
Aleksei
When not to use Components: for directives that need to perform actions in compile and pre-link functions, because they aren't available
Aleksei
ну да, я тут потыкал
Aleksei
если хочешь следить за чем-то внутри компонента - делай это в $doCheck
Aleksei
$doCheck() { console.log(this.price) }
Denis
а чем он отличается от onChanges?
Aleksei
ну примерно всем
Denis
описание пипец мутное
Aleksei
смотри
Denis
в доке
Aleksei
у тебя есть компонент
Aleksei
my-comp(foo="vm.mamka" bar="vm.papka")
Aleksei
если ты поменяешь ссылку в vm.mamka\papka - у тебя дёрнется onChanges
Aleksei
ну при условии что foo: '<', bar: '<'
Aleksei
а doCheck у тебя дёрнется в случае если ты в контроллере компонента изменишь что-то, лежащее в this
Aleksei
грубо говоря constructor($timeout) {$timeout(() => this.price = 1000, 1000)}
Aleksei
вот такая штука дёрнет тебе doCheck
Aleksei
onChanges - изменения снаружи, doCheck - внутри
Denis
я понял.. этот doCheck потный какой то, я мышкой провел по тэгу на странице, он вызвал его 97 раз
Aleksei
скорее всего ещё doCheck будет дёргаться при изменении чего, проброшенного через '='
Aleksei
ну значит у тебя есть лисенер, который делает что-то в скопе по mouseOver
Denis
есть=)
Aleksei
ну вот
Denis
двигает элемент=)
Aleksei
надеюсь я помог
Denis
Да, Вы очень помогли! Хоть в голове все в кучу собралось, благодарю
Denis
А чего там в соседнем чате angular обижают?
Denis
что он им сделал? ну замороченный немного, но клевый же
Aleksei
Представь что ты лыжник, так вот, большинство в том чате - сноубордисты
Denis
больше похоже что я пи#арст, а они нормальные=)
Denis
к лыжникам как то негатива меньше
Alex
onChanges - изменения снаружи, doCheck - внутри
нет. $doCheck срабатывает при каждом дайджест цикле. а $onChanges всегда отрабатывает до $onInit чтобы отловить initialValue