[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Brendo Vale
Criador Brendo Vale 16/10/2018

Como faz para pegar mais de 1 ou 2 valores no filtro? 

filterClients(){
  if(this.filterC === '')
  return this.clientList
   
  let vm = this
   
  return this.clientList.filter(cliente => {
  return cliente.name.toLowerCase().indexOf(vm.filterC.toLowerCase()) > -1
  })
  },
Criador Brendo Vale 16/10/2018

https://github.com/TioLee/Vue-Component-Study/blob/master/ClientForm.vue

Brendo Vale
Manager Carlos Ferreira 16/10/2018

Salve Brendo!
Tudo bem?

Primeiro uma dica, não precisa criar essa variável "vm", como você está trabalhando com ES6 basta simplesmente fazer "this.", mesmo em uma função de callback.

No caso para filtrar, você quer filtrar por duas ocorrências de pesquisa diferentes? Tipo: nome e email

Ou simplesmente, filtrar a mesma palavra de pesquisa por duas condições diferentes?

Carlos Ferreira
Criador Brendo Vale 16/10/2018

E isso mesmo, tipo nome e e-mail

 

--- Dúvida 2

 

fica uma bagunça no App.js quando se tem muitos componentes, eu separei o arquivo usei export defualt como no código abaixo só que não está funciona

Segui a documentação https://br.vuejs.org/v2/guide/components-registration.html 

obs: estou usando o laravel


import App from './components/App'
import BreadcrumbComponent from './components/global/BreadcrumbComponent'
import NavBarComponent from './components/global/NavBarComponent'

export default {
components: {
'main-app': App,
'bread-crumb' : BreadcrumbComponent,
'nav-bar' : NavBarComponent
},
}
Brendo Vale
Manager Carlos Ferreira 16/10/2018

Fiz um exemplo de filtro com ES6 para você adaptar ao seu projeto, pode rodar diretamente no console do Browser para ver como fica:
let items = [
    {name: 'Carlos', email: '[email protected]'},
    {name: 'contato', email: '[email protected]'},
    {name: 'conta', email: '[email protected]'},
];

let name = 'Carlos'
let email = '[email protected]'

let filter = items.filter((item) => {
    return item.name == name || item.email == email
})
console.log(filter)

Carlos Ferreira
Manager Carlos Ferreira 16/10/2018

Sobre os components, caso esteja ficando muito grande o arquivo app.js, pode criar um arquivo chamado components.js e nele registar os components, o arquivo app.js ficaria assim:
require('./componets');

E no arquivo componets.js fica assim:
Vue.component('bread-crumb', require('./components/global/BreadcrumbComponent'));
Vue.component('nav-bar', require('./components/global/NavBarComponent'));

Carlos Ferreira
Criador Brendo Vale 16/10/2018

pode crer obrigado

Brendo Vale
Criador Brendo Vale 16/10/2018

tive que importar o vue no arquivo components.js 

import Vue from 'vue'

ele não estava reconhecendo o vue

Brendo Vale
Criador Brendo Vale 16/10/2018

return item.name == name || item.email == email

 

não tem alguma forma de fazer tipo no mysql %LIKE% ?

Brendo Vale
Manager Carlos Ferreira 16/10/2018

Ah sim, verdade. No components.js como usamos o Vue para declarar os components precisa importar ele. Bem lembrado!

----------
Você pode usar o match, e fazer expressões regulares para filtrar: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/match

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!