angular4如何数据一次性绑定,不再更改?

1、需要显示一个数组对象的数据,但是双向绑定的话,编辑时显示数据会一直变化,要求是显示数据不变;
2、考虑到了深拷贝对象,然后用拷贝去编辑,但是数据量大的话,性能可能出问题,而且两个数据交换起来也麻烦;
3、angular1里有一次性绑定的方法"::",但是试了angular4里面不能用了;
4、请问有没有好的方法

阅读 3.5k
2 个回答

谢邀!

Angular2 的变化检测是允许自定义的;具体参数可以检索:ChangeDetectionStrategy.CheckOnce

不知道是不是和你的要求一样,看一下我写的
新建一个服务app.service.ts,我初始化了一个数组,里面一个set和get方法分别设置和获取数据。

import { Injectable } from '@angular/core';

@Injectable()
export class AppService {

  private testData = ['aaa','bbb','ccc','ddd'];

  constructor() { }

  public setData(data){
    this.testData = data;
  }

  public getData(){
    return this.testData;
  }

}

然后在组件初始化的时候引入这服务调用getData赋值到组件里面的itemArr

constructor(
  private appService: AppService
){
  this.itemArr = this.appService.getData();
}

把itemArr进行模板遍历,你在其他地方调用setData的话这个组件里面的数据是不会变化的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题