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

2024-01-12

我需要对服务和组件属性之间的绑定以及 Angular2 中的数据绑定进行一些澄清

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

export class Service {
 name = "Luke";
 object = {id:1};
 getName(){return this.name};
 getObject(){return this.object};
}

export class Component implements OnInit{
 name:string;
 object:any;
 constructor(private _service:Service){}
 ngOnInit():any{

   //Is this 2 way binding?
   this.name = this._service.name;
   this.object = this._service.object;

   //Is this copying?
   this.name = this._service.getName();
   this.object = this._service.getObject();
  }
}

如果您通过引用更新元素(如果您将某些内容更新到object属性),您将在视图中看到更新:

export class Service {
  (...)

  updateObject() {
    this.object.id = 2;
  }
}

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

export class Service {
  (...)

  updateName() {
    this.name = 'Luke1';
  }
}

看看这个笨蛋:https://plnkr.co/edit/w7bS0fAVjOc3utnpD39b?p=preview https://plnkr.co/edit/w7bS0fAVjOc3utnpD39b?p=preview.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务和组件属性之间的 Angular2 数据绑定 的相关文章

随机推荐

  • Java实现周期性刷新Cache

    我的用例是对持久数据库中存储的数据维护内存缓存 我使用这些数据来填充 UI 上的条目列表 地图 在任何给定时间 UI 上显示的数据应尽可能更新 这可以通过缓存的刷新频率来完成 常规缓存实现与此特定缓存之间的主要区别在于 它需要定期批量刷新所
  • 在 Laravel 4 中将数据传递给闭包

    我正在尝试使用 Laravel 4 中的 Mail 类 但无法将变量传递给 m 对象 team 对象包含我用 eloquent 从数据库中获取的数据 Mail send emails report data function m m gt
  • 使用 C++ 从 OSX 中的 HIDManager 获取鼠标事件

    我正在将游戏从 PC 移植到 osx 但我遇到了输入事件的问题 主游戏窗口是一个与 C 后端交互的可可应用程序 PC 代码使用 DirectInput 和 Windows 消息来生成游戏可以理解的键盘和鼠标事件 当我第一次启动该端口时 我用
  • 逗号运算符什么时候有用?

    I read this https stackoverflow com questions 3561043 javascript syntax what comma means关于表达式中 逗号运算符 的问题 和MDN docs https
  • 使用 lodash 在另一个数组内的数组中查找值

    我有一个数组 例如 var db words word1a word1b word1c answer answer1 words word2a words2b answer answer2 我在 node js 上使用 lodash 来检查
  • 在谷歌云存储上上传图像时文件大小为零字节---nodejs?

    这是我的代码 const fs require fs const uuidv4 require uuid v4 const Storage require google cloud storage const CLOUD BUCKET pr
  • SQL繁琐添加数组作为参数

    我正在运行这个 SQL 查询tedious js使用参数 var query select from table name where id in ids request new sql Request query function err
  • Laravel Pluck 但结合名字+姓氏进行选择

    在 Laravel Vue 项目中使用 select2 并需要返回以下格式的 JSON id 0 text enhancement id 1 text bug 在 Laravel 中 我知道我可以使用 pluck 来创建列表数据 例如对于客
  • Google 地图信息窗口关闭按钮被隐藏

    我在我的网站中使用了带有多个标记和多个信息窗口的 Google 地图 不知何故 关闭按钮 小x 隐藏在信息窗口内 但如果在应显示的位置单击则可以使用 如何解决这个问题 修复了它 显然 bootstrap css 与图像冲突 必须使用这几行额
  • 如何区分 Google Fit Api 中手动添加的步数和传感器记录的步数

    我在我的项目中使用 Google Fit Api 来获取用户的每日步数 但问题是 用户可以通过添加活动来手动输入步骤 当我检索每日步数时 Google Fit Api 还会返回手动添加的步数 有什么方法可以区分手动添加的步骤和传感器记录的步
  • 适用于 Linux 的 C++ 对象序列化

    我正在编写一个需要通过网络发送和接收数据的程序 我从来没有处理过对象序列化 我读到了一些关于 Boost 和 Google Protocol Buffers 的建议 在 Linux 中使用哪个最好 如果您知道其他人 我将感谢您的帮助 Tha
  • Redis、StackExchange、与 MGET 配合使用,一次获取多个密钥

    有没有办法将 MGET 与 StackExchange Redis C 一起使用 我需要一种方法可以在一次通话中重奏多个按键 可以使用下一个方法 Task
  • 是什么让Python中的东西变得可迭代

    是什么让 Python 中的东西变得可迭代 IE 可以循环它for 我可以用Python创建一个可迭代的类吗 如果是这样 怎么办 要使类可迭代 请编写 iter 返回迭代器的方法 class MyList object def init s
  • CUDA - 如果我选择太多块怎么办?

    我仍然对这些未知大小的矩阵感到生气 每个维度可能在 10 20 000 之间变化 我正在查看 CUDA sdk 并想知道 如果我选择的块数量太高怎么办 就像 X 和 Y 维度上 9999 x 9999 块的网格一样 如果我的硬件具有无法容纳
  • git checkout my_branch 与 git checkout origin/my_branch

    我当时在branch1当我结帐时branch2像这样 两个分支都存在 git checkout origin branch2 然后我得到了一个分离头错误 You are in detached HEAD state You can look
  • 根据给定的 OpenApi/Swagger 规范验证请求负载和响应

    我们有一个 HTTP API 它是用Python 的拥抱框架 http www hug rest 但这并不是一成不变的 将来可能会被其他东西取代 在它旁边 我们手动写了一个OpenApi Swagger 2 0 规范文件 https git
  • 如何设置log4j属性文件?

    我有一个使用 log4j 的 Eclipse Java 项目 我无法将log4j配置文件设置为通过文件路径访问 我必须在 jar 中导出并运行该项目 这是我的尝试 public class Wita static Logger logger
  • ROR-使用回形针逐步生成多个图像

    我已经使用了 教程 here http sleekd com rails adding multiple images to a rails model with paperclip 但由于某种原因它不起作用 任何人都可以给我一个使用其他表
  • 如何每天自动从 git 存储库更新我的服务器文件

    我是这些服务器相关工作的菜鸟 我正在本地系统中编写一些 PHP 代码 并定期更新 github 中的存储库 每次我想测试我的应用程序时 我都会通过 FTP 将本地系统中的所有文件复制到我的服务器上 然后进行测试 现在我想知道是否有一种方法可
  • 服务和组件属性之间的 Angular2 数据绑定

    我需要对服务和组件属性之间的绑定以及 Angular2 中的数据绑定进行一些澄清 假设我有一个服务 单例 和一个组件 export class Service name Luke object id 1 getName return thi