假设我有简单的Angular2组件
@Component({ selector: 'parent' })
@View({
template: `
<p>Parent {{ data }}</p>
<child [model]="data"></child>
`,
directives : [Child]
})
export class Parent {
data: number = 42;
}
Run Code Online (Sandbox Code Playgroud)
你可以看到它使用另一个简单的组件
@Component({
selector: 'child',
properties : ['model']
})
@View({
template: `
<p>Child {{ model }}</p>
`,
})
export class Child {
model: number;
}
Run Code Online (Sandbox Code Playgroud)
我正在model从parent组件传递到child角度的[property]数据绑定语法.所以,如果我想跟踪的一些变化model中parent,我可以很容易地事件添加到child,并通过(event)语法跟踪的"父"的变化.那么如何在parent变更时实施相反的情况model并child希望得到通知?
ale*_*ods 10
您可以使用getter和setter来管理它.对于您的示例Child组件必须如下所示:
@Component({
selector: 'child',
properties : ['model']
})
@View({
template: `
<p>Child {{ model }}</p>
`,
})
class Child {
_model: number;
set model(newModelValue) {
// Here we are
console.log('new model value: ' + newModelValue)
this._model = newModelValue;
}
get model() {
return this._model;
}
}
Run Code Online (Sandbox Code Playgroud)
这是你的案件的plunker
您可以将其他逻辑或计算放入onChange方法,该方法在更新所有组件绑定属性后调用.
@Component({
selector: 'child',
properties : ['model']
})
@View({
template: `
<p>Child {{ model }}</p>
`,
})
class Child {
model: number;
onChange(map){
if(map.model) {
console.log('doing crazy stuff here');
console.log(map.model); //SimpleChange {previousValue: 43, currentValue: 44}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10701 次 |
| 最近记录: |