Как разрешить Angular распространять изменения, которые я сделал с моделью. В AngularJS это было бы очень просто, но я не могу заставить его работать в Angular. Я знаю, что вся система обнаружения изменений и распространение вида полностью изменены. Так или иначе, мне нужно сообщить об этом изменениям. Но как я могу это сделать на практике.Как обновить представление после изменения модели в Angular
Посмотреть этот кусок кода: машинопись
import {Component, View, bootstrap, For} from 'angular2/angular2';
// Annotation section
@Component({
selector: 'app'
})
@View({
template: `
<div *for="#user of users">
{{user}}
</div>
`,
directives: [For]
})
class App {
users:Array<String>;
constructor() {
this.users = [];
this.fillUsersAsync();
}
fillUsersAsync(){
window['fetch']('http://jsonplaceholder.typicode.com/users')
.then(resp => resp.json())
.then(users => users.forEach(user => this.users.push(user.name)))
.then(() => console.log('Retrieved users and put on the model: ', this.users));
}
}
bootstrap(App);
Вы увидите, что, после того, как пользователи будут загружаться в модель, вид не обновляется.
Я использую systemjs 0.16, угловой 2.0.0-alpha.23.
See this plnkr for the example (в настоящее время работает только в хроме, так как используется новый «выборки» апи)
Ваша вторая ссылка, кажется, поместила меня на правильный путь, но документ кажется устаревшим. Я думаю, что мне нужна директива формы в массиве директив, но каково имя и как его импортировать? – nicojs
@nicojs посоветует сделать так, как в примере с первой ссылкой, и если это не сработает, сделайте это во втором. Название директивы для 'forms' - директив: [forms] или, возможно, [Forms]. Импортируйте его, как вы импортируете директиву [For]. Попробуйте это и сообщите, пожалуйста, я стараюсь помочь вам больше. –
Я пробовал все, но он не работает. Я думаю, что мы смотрим в неправильном направлении. Насколько я знаю, angular2 все еще использует грязную проверку, чтобы увидеть, изменилась ли модель. Как-то мне нужно сообщить angular2, что я обновил модель. Или используйте эквивалент $ http. – nicojs