Próbuję skonfigurować moją pierwszą aplikację kątową2 jako eksperyment i używam najnowszego wydania beta.Angular2, widok nie aktualizuje się po zmianie wartości w rozliczeniu
Mam do czynienia z dziwnym problemem, w którym zmienna używam w moim widoku nie jest aktualizowana po ustawieniu limitu czasu.
@Component({
selector: "my-app",
bindings: []
})
@View({
templateUrl: "templates/main.component.html",
styleUrls: ['styles/out/components/main.component.css']
})
export class MainComponent {
public test2 = "initial text";
constructor() {
setTimeout(() => {
this.test2 = "updated text";
}, 500);
}
}
Jak widać mam zmiennej o nazwie test2 oraz w konstruktorze i ustawić limit czasu 500 ms, gdzie jestem aktualizując wartość „zaktualizowany tekst”.
Wtedy moim zdaniem main.component.html po prostu użyć:
{{ test2 }}
Ale wartość nie zostanie ustawiona na „zaktualizowanym tekstem” i pozostaje na „pierwotnego tekstu” na zawsze, mimo że część aktualizacji bycie trafionym. Jeśli podążę za tutorialem angular2, tak naprawdę nie dali mi odpowiedzi na to rozwiązanie. Zastanawiałam się, czy ktoś nie ma pojęcia, czego tu brakuje.
edit: mój pełny kod używam w tym bootstrap i html itp
<html>
<head>
<title>Angular 2</title>
<script src="/node_modules/systemjs/dist/system.src.js"></script>
<script src="/node_modules/reflect-metadata/reflect.js"></script>
<script src="/node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="/node_modules/q/q.js"></script>
<script src="/node_modules/jquery/dist/jquery.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="/bower_components/breeze-client/breeze.debug.js"></script>
<script src="/bower_components/datajs/datajs.js"></script>
<script src="/bower_components/bootstrap-less/js/collapse.js"></script>
<script src="/bower_components/bootstrap-less/js/modal.js"></script>
<script src="/bower_components/signalr/jquery.signalR.js"></script>
<script src="http://localhost:64371/signalr/js"></script>
<link href="styles/out/main.css" type="text/css" rel="stylesheet" />
<script>
System.config({
map: {
rxjs: '/node_modules/rxjs' // added this map section
},
packages: {'scripts/out': {defaultExtension: 'js'}, 'rxjs': {defaultExtension: 'js'}}
});
System.import('scripts/out/main');
</script>
</head>
<body>
<my-app>loading...</my-app>
</body>
</html>
main.ts z bootstrap:
import {Component} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
import {COMMON_DIRECTIVES} from './constants';
import {MainComponent} from './components/main.component'
bootstrap(MainComponent);
głównego component.html
{{ test2 }}
Właśnie przebudowałem Twoją minimalną aplikację kątową2, ale otrzymuję zaktualizowany tekst. Czy jest jakiś błąd w konsoli? Jeśli nie, czy możesz podać więcej kodu? Tak jak twój 'index.html',' main.component.html' i gdzie ładujesz aplikację – PierreDuc
Rozwiązało to dla mnie http://stackoverflow.com/a/41724333/1197775 – juanpastas