【问题标题】:What are the attribute like names on my ember model?我的 ember 模型上的名称等属性是什么?
【发布时间】:2013-07-22 19:41:31
【问题描述】:

我有一个定义了两个属性的 ember 模型:名称和地址。如果我从服务器获得模型,我可以使用myVar.get('name')myVar.get('address') 访问这些模型,但我注意到我还有myVar.namemyVar.address,它们都是未定义的。这些是什么?如果我以不同的方式设置模型,我是否能够通过它们访问我的属性?

【问题讨论】:

  • 每当您访问 Ember.Object 时,您都需要使用提供的 getter 和 setter,以便 Ember 知道在运行循环中更新 DOM。

标签: ember.js


【解决方案1】:

如果get 方法返回定义的值,我无法解释为什么你会得到带有点符号的undefined。但总的来说,始终使用 getset 会有所帮助,因为 Ember 具有计算属性、数据绑定和观察者。重构可以更容易,它还支持unknownProperty 处理程序。

来自get的文档:

此方法通常类似于使用 object[keyName] 或 object.keyName,但它同时支持计算属性和 unknownProperty 处理程序。

因为 get 统一了访问所有这些类型的语法 属性,它可以使许多重构变得更容易,例如替换 带有计算属性的简单属性,反之亦然。

来自set的文档:

这个方法一般和调用object[key] = value很相似 或 object.key = value,除了它提供对计算的支持 属性、unknownProperty() 方法和属性观察器。

【讨论】:

  • 我使用 Ember 数据并从 JSON 创建/填充这些模型是否重要?
  • DS.Model inherits Em.Object,因此 DS.Model 的实例中仍然存在计算属性、观察者等。使用 Ember Data 时,您仍应使用 getset。此外,JSON 只是从服务器获取数据时使用的格式,与模型的实现没有任何关系。
  • 所以我不能对我的属性使用点表示法只是一些异常,但这并不重要,因为我应该使用getset,不管它是否有效?
  • 再次,我无法解释为什么当get 工作时点符号不返回值。但就像大多数与开发相关的问题一样,我不会说这无关紧要,因为它最终可能会咬你一口,哈哈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-01
  • 2017-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-05
相关资源
最近更新 更多