Angular2 erfrischenden Blick auf array-push

Ich kann nicht scheinen, um angular2 Ansicht aktualisiert werden, auf ein array.push-Funktion, aufgerufen von einem setInterval asynchronen Betrieb.

der code ist aus diesem eckige plunkr Beispiel mit der setInterval-Funktion:

Was ich versuche zu tun, ist wie folgt:

JS:

import {View, Component, bootstrap, Directive, ChangeDetectionStrategy, ChangeDetectorRef} from 'angular2/angular2'

@Component({selector: 'cmp', changeDetection: ChangeDetectionStrategy.OnPush})
@View({template: `Number of ticks: {{numberOfTicks}}`})
class Cmp {
  numberOfTicks = [];
  
  constructor(private ref: ChangeDetectorRef) {
    setInterval(() => {
      this.numberOfTicks.push(3);
      this.ref.markForCheck();
    }, 1000);
  }
}

@Component({
  selector: 'app',
  changeDetection: ChangeDetectionStrategy.OnPush
})
@View({
  template: `
    <cmp><cmp>
  `,
  directives: [Cmp]
})
class App {
}

bootstrap(App);

HTML:

<!DOCTYPE html>
<html>

<head>
  <title>angular2 playground</title>
  <script src="https://code.angularjs.org/tools/traceur-runtime.js"></script>
  <script src="https://code.angularjs.org/tools/system.js"></script>
  <script src="https://code.angularjs.org/tools/typescript.js"></script>
  <script data-require="jasmine" data-semver="2.2.1" src="http://cdnjs.cloudflare.com/ajax/libs/jasmine/2.2.1/jasmine.js"></script>
  <script data-require="jasmine" data-semver="2.2.1" src="http://cdnjs.cloudflare.com/ajax/libs/jasmine/2.2.1/jasmine-html.js"></script>
  <script data-require="jasmine@*" data-semver="2.2.1" src="http://cdnjs.cloudflare.com/ajax/libs/jasmine/2.2.1/boot.js"></script>
  
  <script src="config.js"></script>
  <script src="https://code.angularjs.org/2.0.0-alpha.37/angular2.min.js"></script>
  <script>
    System.import('app')
      .catch(console.error.bind(console));
  </script>

</head>

<body>
  <app></app>
</body>

</html>

Den oben genannten code funktioniert richtig, wenn "numberOfTicks" ist nur eine Zahl, (wie die plunker original-Beispiel zeigt), aber sobald ich es in ein array und push-Daten, es wird nicht aktualisiert.

Ich kann nicht scheinen, um zu verstehen, warum.

Folgende Verhalten ist ähnlich wie ein Problem, das ich habe, wenn Sie versuchen zu aktualisieren ein Diagramm in angular2 mit neuen Daten Punkte bei der Verwendung von setInterval /setTimeout.

Danke für die Hilfe.

  • Ich werde erarbeiten - ich bin versucht, zu aktualisieren ein Diagramm in Echtzeit-Aktualisierung und Daten-array mit Hilfe der oben setInterval methodoligy, diese plunker könnte ein gutes Beispiel sein, um zu versuchen und erreichen das: plnkr.co/Bearbeiten/vdgKVJOymMYhiyqZrPma?p=Album Vorhören
Schreibe einen Kommentar