Ich versuche die Ansicht zu aktualisieren, nachdem ein Ereignis-Listener ausgelöst wurde. Die Änderung wird jedoch nicht erkannt und wird erst aktualisiert, wenn eine andere Änderung erkannt wird.So aktualisieren Sie die Ansicht nach Änderung in angular2, nachdem der google Ereignis-Listener ausgelöst wurde
import {
Component, View, bootstrap
} from 'angular2/angular2';
@Component({
selector: 'app'
})
@View({
template: '{{keyword}} <input id="keyword" /><br/><span (click)="update()">{{click}}</span>'
})
class App {
keyword;
autocomplete;
click;
constructor() {
var _this = this;
var input = (document.getElementById('keyword'));
this.autocomplete = new google.maps.places.Autocomplete(input);
google.maps.event.addListener(this.autocomplete, 'place_changed', function(){
console.log('place change');
_this.keyword = "updated text";
_this.click = "not clicked";
});
this.keyword = "original text";
this.click = "click me after selection is made to force change";
}
update() {
console.log("click");
this.click = "clicked";
}
}
bootstrap(App);
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css" />
<script data-require="[email protected]" data-semver="2.1.4" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://jspm.io/system.js"></script>
<script src="https://code.angularjs.org/2.0.0-alpha.30/angular2.dev.js"></script>
<script src="https://maps.googleapis.com/maps/api/js??v=3.exp&libraries=places"></script>
</head>
<body>
<app></app>
<script>
System.import('main');
</script>
</body>
</html>
Wenn Sie den Speicherort in der Eingabe zu ändern, sollte der Text nach links ändern. Es wird nur geändert, nachdem eine andere Änderung erkannt wurde, z. B. durch Klicken auf den folgenden Text.
Was mache ich falsch und wie mache ich es richtig?
Ich weiß, das ist alt ... aber kann dies in Winkel v5 getan werden ?? ... Ich höre '' cluster_click''-Event, aber der eckige Materialdialog ist nicht richtig initialisiert – TomP