【问题标题】:rendering complex models [states] with amperstand.js views [subviews]使用 amperstand.js 视图 [子视图] 渲染复杂模型 [状态]
【发布时间】:2015-08-17 07:08:41
【问题描述】:
  • 一位木偶\骨干开发人员尝试(努力)采用 & 符号

给定一个具有嵌套属性的复杂模型(如下)。渲染深度嵌套布局的最佳实践是什么。

-- 主视图

---- 用户信息视图

------社会信息视图

-------- socialCollectionsView

& 符号状态不支持“深度模型”。它看起来相当平坦(一个级别,然后您可以使用自己的类型,例如“reviewModel”)。

基本上,我怎样才能在不破坏复杂模型的情况下保持它,并使我的嵌套(视图/子视图)布局清晰易读。

{
  firstName: 'John',
  lastName: 'Doe',
  "social": {
    "linkedin": {
      "connections": 123,
      "positions": [{
        image: 'bla.jpg'
        "title": "CTO & Co - founder"
      }, {
        image: 'bla2.jpg'
        "title": "prime minister"
      }, ],
      "friends": [{
        name: james,
        a: 'b'
      }, {
        name: jane,
        x: 'y'
      }],
      "languages": ['english', 'russian']
    },
    "twitter": {
      "connections": 122
    }
  },
}

【问题讨论】:

    标签: javascript ampersand.js


    【解决方案1】:

    如果您不需要关注深层数据的变化,那么您可以简单地将“对象”数据类型用于“社交”等道具,并在您的视图中像this.model.social.linkedin.connections 一样访问。

    否则,您确实需要使用children hash(代码)或'state' data type(代码),因为它们会自动设置侦听器。

    当您想要观察深度嵌套数据的变化时,与号确实要求您明确说明事物(您试图避免的新类型)。

    & 符号的方式是尽可能选择小的、单一关注的模型/视图,并从小的、单一关注的模型/视图中组合不可避免的复杂模型/视图。

    【讨论】:

      【解决方案2】:

      “state.children”可能是您正在寻找的。或者尝试“状态”类型的“道具”。

      【讨论】:

      • 我重新阅读了文档。我认为他们期望我做的是确实将每个级别打破为子属性。这可能会创建很多实体,因为并非所有实体都是纯集合或状态。 ``` socialModel -> ----children: socialCollection -----------------socialCollectionItemModel -------------------- -------socialCollectionItemModelNewCollection
      • Ampersand 正在稍微扭动你的手臂来做到这一点(将其分解以简化视图、表单等),恕我直言,这是一件好事,因为当事情发展时,你会得到很多小东西你拼图中的碎片,而不是大碎片。 (另外,请接受我的 [简短] 答案,我需要在这里获得足够的分数来支持/反对 =)
      猜你喜欢
      • 1970-01-01
      • 2019-06-12
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2016-07-18
      • 1970-01-01
      相关资源
      最近更新 更多