使用amperstand.js视图[subviews]渲染复杂模型[states]

时间:2015-08-17 07:08:42

标签: javascript ampersand.js

  • 由木偶\骨干开发者尝试(硬)采用&符号

给出具有嵌套属性的复杂模型(如下所示)。渲染深层嵌套布局的最佳实践是什么?

- mainView

---- userInfoView

------ socialInfoView

-------- 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
    }
  },
}

2 个答案:

答案 0 :(得分:1)

如果您不需要观察深层数据的变化,那么您只需使用“对象”即可。像“社交”这样的道具的数据类型。并在您的视图中访问this.model.social.linkedin.connections

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

当你想观察深层嵌套数据的变化时,& 要求你明确事物(你试图避免的新类型)。

Ampersand的方式是尽可能选择小型的,单一关注的模型/视图,并从小的,单一关注的模型中构建不可避免的复杂模型。

答案 1 :(得分:0)

" state.children"可能就是你要找的东西。或尝试"道具"类型'州'。