如何正确访问Sencha模型的属性?

马塞尔·斯托(MarcelStör)

似乎有多种方法可以访问Sencha(Touch)模型的属性。但是,我似乎无法找到适当的文档来证明这是“正确”的方法。

模型制作

var model = Ext.create('MyApp.model.MyModel', {
  name: value,
  foo: bar,
  ...
})

物业出入

  • model.get('name') 要么 model.set('name', newValue)
  • model.data.name 要么 model.data.name = newValue
  • model.raw.name 无论模型定义中的数据类型是什么,似乎总是返回一个字符串?
rixo

让我们整理一下:

  • getset方法是模型字段值的预期访问器。

  • model.data是存储客户端模型值的对象,客户端模型值是使用字段配置(类型,转换方法等) 服务器 代理接收的数据中转换而来的

  • model.raw是在转换为 客户端 应用程序域模型值之前 服务器 代理 接收的原始数据 您应该避免使用它,否则将自己绑定到代理/服务器。

  • model['name']:正如您所说,它不起作用。不要希望它回来(我什至根本不了解它在某一时刻起作用)。

现在,您应该使用哪一个?显然,最后两个已经不匹配了。

model.data大多数情况下,对象应给您预期的结果(请参见下面的内容),而其他调用函数对象应给您带来边际性能的提高。

但是,出于两个原因,IMO您应该始终更喜欢使用getter和setter。

首先,您的团队中的某个人(或您过去的人)可能会认为getter / setter是添加一些自定义逻辑的好方法。在这种情况下,data直接使用对象绕过访问器也将绕过此逻辑,并产生不可预测的结果。

其次,getter和setter使得从某些地方修改模型值变得容易知道,从而使调试某些情况确实更加容易。我的意思是,如果有一天你要问自己“ f ** k,为什么我的模型字段值变成这个?”。如果所有代码都使用吸气剂,则只需要在其中放置一个断点,就可以抓到罪魁祸首。另一方面,如果包含代码的代码data直接使用了该对象,则您将被困在整个项目搜索中……您无法确切地知道…… data.name =data['name'] =name:等等

现在我考虑了,还有另一个原因。一个弃用一个明显。但是data对象名称曾经使用此persistenceProperty选项可自定义因此,在某些情况下,该data对象甚至将不可用,而执行代码model.data.name而不是model[model.persistenceProperty].name崩溃,简单明了。

简短的答案:使用访问器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用javascript变量访问模型属性

来自分类Dev

如何在jQuery中访问模型属性

来自分类Dev

如何使用javascript变量访问模型属性

来自分类Dev

如何正确访问Java类的属性

来自分类Dev

使用textboxfor时如何从扩展属性访问模型属性?

来自分类Dev

从javascript访问模型属性

来自分类Dev

从模型访问BaseController属性

来自分类Dev

如何从控制器正确访问Ember模型数据

来自分类Dev

如何正确继承UIColor或如何访问UIColor子类属性

来自分类Dev

如何在Django中使用直通模型访问属性?

来自分类Dev

如何从视图模型访问不可绑定的视图属性?

来自分类Dev

MVC 4如何访问模型的必需属性客户端

来自分类Dev

如何在我的视图中从模型访问属性

来自分类Dev

如何在敲除模型迭代中从数组访问同级属性

来自分类Dev

我应该如何从关联模型访问虚拟属性?

来自分类Dev

这是允许其他视图模式访问视图模型属性的正确方法吗?

来自分类Dev

在DisplayTemplate中访问模型属性

来自分类Dev

Django动态访问模型属性

来自分类Dev

如何访问模型方法?

来自分类Dev

如何获得模型属性的属性?

来自分类Dev

迁移NDB模型属性的正确方法

来自分类Dev

AngularJS:如何从控制器中的模型数据正确设置服务属性?

来自分类Dev

如何正确配置ODataModelBuilder以避免与模型对象的虚拟属性冲突

来自分类Dev

如何从模型内部访问模型字段值?

来自分类Dev

如何从当前模型所属的模型访问数据?

来自分类Dev

如何正确更新jtable模型?

来自分类Dev

如何正确设置Keras模型?

来自分类Dev

为员工扩展了Django用户模型。如何访问模型管理员的change_form中的employee属性?

来自分类Dev

如何从覆盖的雄辩的save()方法访问模型属性?(将空输入转换为空)

Related 相关文章

  1. 1

    如何使用javascript变量访问模型属性

  2. 2

    如何在jQuery中访问模型属性

  3. 3

    如何使用javascript变量访问模型属性

  4. 4

    如何正确访问Java类的属性

  5. 5

    使用textboxfor时如何从扩展属性访问模型属性?

  6. 6

    从javascript访问模型属性

  7. 7

    从模型访问BaseController属性

  8. 8

    如何从控制器正确访问Ember模型数据

  9. 9

    如何正确继承UIColor或如何访问UIColor子类属性

  10. 10

    如何在Django中使用直通模型访问属性?

  11. 11

    如何从视图模型访问不可绑定的视图属性?

  12. 12

    MVC 4如何访问模型的必需属性客户端

  13. 13

    如何在我的视图中从模型访问属性

  14. 14

    如何在敲除模型迭代中从数组访问同级属性

  15. 15

    我应该如何从关联模型访问虚拟属性?

  16. 16

    这是允许其他视图模式访问视图模型属性的正确方法吗?

  17. 17

    在DisplayTemplate中访问模型属性

  18. 18

    Django动态访问模型属性

  19. 19

    如何访问模型方法?

  20. 20

    如何获得模型属性的属性?

  21. 21

    迁移NDB模型属性的正确方法

  22. 22

    AngularJS:如何从控制器中的模型数据正确设置服务属性?

  23. 23

    如何正确配置ODataModelBuilder以避免与模型对象的虚拟属性冲突

  24. 24

    如何从模型内部访问模型字段值?

  25. 25

    如何从当前模型所属的模型访问数据?

  26. 26

    如何正确更新jtable模型?

  27. 27

    如何正确设置Keras模型?

  28. 28

    为员工扩展了Django用户模型。如何访问模型管理员的change_form中的employee属性?

  29. 29

    如何从覆盖的雄辩的save()方法访问模型属性?(将空输入转换为空)

热门标签

归档