数据绑定 – 服务和组件属性之间的angular2数据绑定

前端之家收集整理的这篇文章主要介绍了数据绑定 – 服务和组件属性之间的angular2数据绑定前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要澄清服务和组件属性之间的绑定以及angular2中的数据绑定

假设我有一个服务(单身)和一个组件

  1. export class Service {
  2. name = "Luke";
  3. object = {id:1};
  4. getName(){return this.name};
  5. getObject(){return this.object};
  6. }
  7.  
  8. export class Component implements OnInit{
  9. name:string;
  10. object:any;
  11. constructor(private _service:Service){}
  12. ngOnInit():any{
  13.  
  14. //Is this 2 way binding?
  15. this.name = this._service.name;
  16. this.object = this._service.object;
  17.  
  18. //Is this copying?
  19. this.name = this._service.getName();
  20. this.object = this._service.getObject();
  21. }
  22. }
如果通过引用更新元素(如果将某些内容更新到object属性中),您将在视图中看到更新:
  1. export class Service {
  2. (...)
  3.  
  4. updateObject() {
  5. this.object.id = 2;
  6. }
  7. }

如果按值更新元素(如果将某些内容更新到name属性中),则不会在视图中看到更新:

  1. export class Service {
  2. (...)
  3.  
  4. updateName() {
  5. this.name = 'Luke1';
  6. }
  7. }

看到这个plunkr:https://plnkr.co/edit/w7bS0fAVjOc3utnpD39b?p=preview.

猜你在找的Angularjs相关文章