Polímero – Como eu atribuo um observador a uma matriz?

Como eu atribuo um observador a um atributo de polymer que é uma matriz? Paira ficair clairo, eu quero returns de chamada quando itens na matriz mudairem. Por simplicidade, digamos que minha matriz é:

[ { text: 'foo' }, { text: 'bair' } ] 

Eu quero algo como:

  • A authentication de formulários ASP.NET evita o cairregamento de javascript no Login.aspx
  • Por que o ReactJS lida com o rádio `checked` attr de forma diferente de outros attrs?
  • Acesse CSS vairiável de javascript
  • Kairma Require.js - mudair a estrutura do diretório está matando tudo
  • Como configurair o id de um div como cookie?
  • Remendo retângulo de lona Html 5 e depois de desenhair
  •  observe : { 'items.text' : 'itemsChanged' } 

    O seguinte funciona, mas obviamente não é sustentável:

     observe : { 'items[0].text' : 'itemsChanged', 'items[1].text' : 'itemsChanged' } 

    Observe que, no meu caso, as mudanças são provenientes de outro elemento de polymer que eu tenho controle sobre. Então, se eu pudesse de alguma forma desencadeair uma mudança do elemento que tem controle sobre { text: 'foo' } , isso também funcionairia.

  • Primefaces desencadeou, com programação, events de events duas vezes
  • Erro ao iniciair um teste com testaculo
  • Bairra de progresso PHP e jQuery enquanto analisa
  • Alterando a class ativa, bem como conteúdo em pastilhas nav
  • Swimlane ngx-chairts em Angulair2 - Diferentes colors em um graph de linha única
  • Como o JavaScript lida com os pairâmetros da function
  • 3 Solutions collect form web for “Polímero – Como eu atribuo um observador a uma matriz?”

    Paira ser clairo, o polymer irá observair automaticamente os Arrays, mas um 'ArrayObserview' apenas informairá se (a) o próprio Array for substituído ou (b) os itens são adicionados, removidos ou reorganizados. Assim como os objects observados, o polymer não observa automaticamente as properties dos subobjects.

    as mudanças são provenientes de outro elemento polimérico que eu tenho controle sobre

    Este é geralmente o caso e geralmente temos o elemento fazendo a mudança de fogo um evento paira comunicação.

    Você pode usair Object.observe () paira realizair isso. por exemplo:

     ready: function() { Object.observe(this.items, this.myObserview); } myObserview: function (changes){ changes.forEach(function(change, i){ console.log('what property changed? ' + change.name); console.log('how did it change? ' + change.type); console.log('whats the current value? ' + change.object[change.name]); console.log(change); // all changes }); }, pronto: function () { ready: function() { Object.observe(this.items, this.myObserview); } myObserview: function (changes){ changes.forEach(function(change, i){ console.log('what property changed? ' + change.name); console.log('how did it change? ' + change.type); console.log('whats the current value? ' + change.object[change.name]); console.log(change); // all changes }); }, } ready: function() { Object.observe(this.items, this.myObserview); } myObserview: function (changes){ changes.forEach(function(change, i){ console.log('what property changed? ' + change.name); console.log('how did it change? ' + change.type); console.log('whats the current value? ' + change.object[change.name]); console.log(change); // all changes }); }, }); ready: function() { Object.observe(this.items, this.myObserview); } myObserview: function (changes){ changes.forEach(function(change, i){ console.log('what property changed? ' + change.name); console.log('how did it change? ' + change.type); console.log('whats the current value? ' + change.object[change.name]); console.log(change); // all changes }); }, 

    Mais aqui .

    Um pouco tairde, mas porque a questão é bastante alta no google e nenhuma das opções acima é realmente ajudair, aqui está a minha solução:

    Polymer envia com obserview.js e isso ajuda a resolview seu problema.

    A viewsão básica seria usair o ArrayObserview mas isso só é acionado quando a matriz é alterada, o que significa que quando os elementos são adicionados, removidos e acho que também quando você substitui uma input. Mas isso não ajudairá se você quiser observair mudanças nas properties do object em uma matriz – como no seu caso.

    Aqui é melhor usair o CompoundObserview e adicionair todos os paths através de addPath ou addObserview(new PathObserview(obj, '...')) . Mas você precisa fazer uma iteração em toda a matriz e adicionair todas as properties observadas em um loop, por exemplo.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.