自定义组件用Injectable()装饰后,双向绑定失效问题!
来源:5-5 双向绑定
Meepo校园联盟
2017-04-05
//场景: 这是一个loading组件,在其他组件内我想直接通过 service方式使用,这里使用了
// Injectable()装饰器
@Injectable()
export class CoreLoadingComponent implements OnInit {
_msg: string;
@Input()
get msg(){
return this._msg;
}
set msg(val: string){
this._msg = val;
}
public show(msg: string){
this._msg = msg;
}
}
//然而效果并不是我想要的,现在即使在下面通过调用show函数也无法绑定到下面这个模板上去,
//好郁闷,对于这方面需求应该如何做呢,我想通过服务的方式去调用一些简单的模板相应事件
//
<input [(ngModel)]="_msg">
<h2 class="title">{{_msg}}</h2>
//使用
export class TestIndexComponent implements OnInit {
constructor(
public loading: CoreLoadingComponent // 直接注入组件
) {}
ngOnInit() {
console.log('test loading is',this.loading);
//完成后动态改变他的值
//这个时候loading的_msg是
let i = 0;
setInterval(()=>{
let msg = i+'s';
this.loading.show(msg);
console.log(this.loading);
i++;
},1000);
}
}
//写回答
1回答
-
JoJo
2017-04-05
额...没看明白,你想实现什么效果?
032017-04-05
相似问题