Gab*_*ary 4 javascript knockout.js computed-observable angular
我目前正在努力将我从Knockout编写的一些代码移植到Angular2.我真的很喜欢knockout中计算的observables的构造,这意味着只有当obeservable依赖于变化时才计算该函数的结果.
我知道我可以在角度中使用一个函数,它只会在结果发生变化时更新视图(即使它会多次计算结果),但我的计算机正在进行排序,这就是为什么我只想要完成工作当输入实际改变时.
我发现下面的链接解释了如何使用angularjs,但我不知道如何将其转换为angular2(typescript)
http://www.jomendez.com/2015/02/06/knockoutjs-computed-equivalent-angularjs/ KO.Angular/Breeze Initializer中的计算等效项
如果你使用的是TypeScript,我会考虑使用getter.您还可以使Component使用ChangeDetectionStrategy.OnPush来确保仅在其中一个属性发生更改时才评估绑定.这是一个Plunker:https://plnkr.co/edit/PjcgmFCDj8UvBR7wRJs2 ? p = preview
import {Component,ChangeDetectionStrategy} from 'angular2/core'
@Component({
selector:'person',
template:`<div>
<div>
First Name
<input [(ngModel)]="firstName">
</div>
<div>
Last Name
<input [(ngModel)]="lastName">
</div>
{{fullName}}
</div>`,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class Person{
firstName = '';
lastName = '';
get fullName(){
return this.firstName + ' ' + this.lastName;
}
}
Run Code Online (Sandbox Code Playgroud)