@vuejs_ru
Vue.js — русскоговорящее сообщество

Общаемся на темы, посвященные Vue.js и опыту его использования. Проблемы. Новости. Решения. См. также: @js_ru, @react_js, @angular_ru, @nuxtjs_ru Вакансии только тут: @javascript_jobs

3988 members

Архив канала @vuejs_ru 9 ноября 2016 г.

07:58:00 ДП
User 55423102
Кто-нибудь сталкивался с тем, что нужно сделать computed-array в котором нужно отфильтровывать элементы по какому-нибудь свойству? Запилил, список из элементов есть в data, если какой-то элемент удалить, то все отлично -- перестает показываться. Если добавить элемент в массив - показывается, но если удалить свежедобавленный, то он не уходит, хотя в нем флаг устанавливается
08:02:03 ДП
User 55423102
Ложная тревога) в добавляемом элементе опечатка была в свойстве :)
08:02:16 ДП
08:03:18 ДП
User 552804
слава Трампу
08:03:59 ДП
User 42324
Он уже президент
08:04:10 ДП
User 55423102
думаешь разработку Vue лучше начнут спонсировать?
10:00:44 ДП
User 42324
Ребята как в 2 версии обявлять Vue.elementDirective
10:00:45 ДП
10:04:43 ДП
User 138709614
`
directives: {
    directiveName: {
      // ...
    }
},
`
10:05:29 ДП
User 42324
Я по началу так делал
10:05:30 ДП
User 42324
Vue.directive('facebook-init', {
  bind (el, binding, vnode) {
    console.log('facebook-init')
  }
})
10:05:36 ДП
User 42324
но не работает
10:05:48 ДП
User 42324
так как это работает только если указывать как аргумент
10:05:58 ДП
User 42324
<facebook-init></facebook-init>
10:06:02 ДП
User 42324
вот так не работает
10:07:11 ДП
User 138709614
Версия 2.0.5 - работает
10:07:15 ДП
User 42324
Еще вопрос по стилям
10:07:32 ДП
User 42324
Я использую vue cli webpack
10:07:37 ДП
User 42324
И scss
10:08:18 ДП
User 42324
Как правильно прикручивать стили, я делал в робительском компоненте типа style src
10:08:40 ДП
User 42324
Но оно не файлом вставляет а прям в head style
10:09:24 ДП
User 42324
Как сдкeлать чтоб через link было без явного указания в index.html
10:13:32 ДП
User 138709614
Мне это не нужно было, автоматом он вставлять через вебпак не будет, можешь попробовать для определенных путей регуляркой менять лоадер
10:14:16 ДП
User 42324
Сергей, также по поводу деректив 
Сделал <test></test>
И в компоненте 
directives: {
    test: {

    }
  }

в консоли

Unknown custom element: <test> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
10:15:01 ДП
User 138709614
Так директива это <element v-test="param"></element>
10:15:29 ДП
User 138709614
Если <test></test> - то это компонент
10:15:29 ДП
User 42324
ну а мне надо сделать чтоб было через <test></test>
10:15:35 ДП
User 42324
понял
10:16:11 ДП
User 42324
точно чет я сразу так думал, просто глянул в доки 1 версии и там увидел что есть elementDirective
10:18:10 ДП
User 42324
Сергей, спасибо за помощь
10:24:55 ДП
User 133944225
Всем привет, 
Ребята имею у роута чаилд роуты,
в компоненте этого роута написал некий html + router-view
когда использую роутер мой html дублируется
в чем может быть проблема?
10:25:26 ДП
User 42324
router-view может быть только 1
10:25:34 ДП
User 42324
если не используеш имена для них
10:25:50 ДП
User 133944225
в смысле
10:25:53 ДП
User 133944225
у меня он один
10:26:07 ДП
User 42324
кинь пример своего компонента
10:26:08 ДП
User 138709614
В субкомпонентах могут быть также router-view
10:26:13 ДП
User 133944225
дублируется html рядом с ним, т.е
<div>
<h1>
<router-view>
</div>
10:26:19 ДП
User 133944225
вот у меня создается 2 h1
10:26:24 ДП
10:26:34 ДП
User 133944225
`<template>
    <div>
      <md-toolbar>
          <h2 class="md-title" style="flex: 1">Vue Material</h2>
      </md-toolbar>
      <router-view></router-view>
    </div>
</template>`
10:30:39 ДП
User 133944225
проблема пофикшена
03:47:59 ПП
User 133944225
Ребят, а если я передаю булевый флаг в дочерний компонент и хочу его там изменить и подхватить изменине в паренте. 
Я так понимаю, что через пропсы я не могу это сделать, так как иммутабельность не соблюдается. 
Как лучше  в таком случае поступать ?
03:48:10 ПП
User 133944225
изменение*
04:19:03 ПП
User 55423102
Пропсы только на чтение. Точнее менять их можно, но результат будет нулевой
04:19:23 ПП
User 55423102
Можно например событие сгенерировать, чтобы родительский компонент поменял флаг
04:19:36 ПП
User 133944225
я прокидываю событие
04:19:41 ПП
User 133944225
и чаилдом имичу его
04:19:54 ПП
04:20:01 ПП
User 133944225
ну и теперь работает)
04:20:28 ПП
User 55423102
Ну вот похоже лучше не придумали вариантов
04:20:39 ПП
User 55423102
А как генерируешь событие кстати
04:20:51 ПП
User 55423102
У меня с общей шиной не получилось сделать
04:22:18 ПП
User 133944225
есть в паренте метод
changeFlag
я вызываю чаилд компонент, прокидываю ему
v-on:change="changeFlag"
в чаилде вызываю метод, который должен будет внутри себя уже вызвать
this.$emit('change');
04:22:26 ПП
User 133944225
https://vuejs.org/v2/guide/components.html#Using-v-on-with-Custom-Events
vuejs.org/v2/guide/components.html
Vue.js - The Progressive JavaScript Framework
04:23:21 ПП
User 55423102
Да документацию я читал, только там простые примеры, а необходимое кажется не расписанным) ну или это пока я не догоняю всего
04:24:16 ПП
User 55423102
а я вместо прокидывания в компонент v-on:событие в дочернем сделал this.$parent.$emit 😅 типа вылези наверх и громко крикни
04:24:42 ПП
User 133944225
ну, я в ангуляре получил опыт не использования $parent )
04:25:06 ПП
User 133944225
$rootScope
04:25:10 ПП
User 133944225
если быть точнее)
04:25:12 ПП
User 55423102
да понятно что не лучший вариант, еще не лучшее было бы через $parent пролезть до самого метода и его напрямую вызвать
04:25:21 ПП
User 55423102
но это если что случится с методом, то все пойдет под откос
04:27:08 ПП
User 55423102
А с шиной из документации я так и не понял где и как её надо инициализировать, чтобы она общей была меж разных компонентов