2012-07-29 37 views
0

我正在构建一个只读的骨干应用程序,其中包含遵循排序的建筑物/校园结构的数据(源自单个静态json文件)。那就是:来自静态json文件的路由的主干应用程序(只读)?

[{ 
    "name": "Building Name", 
    "id": "building", 
    "floors":[{ 
     "name":"Ground Floor", 
     "rooms":[{ 
      "name": "Room 1" 
     }, 
     { 
      "name": "Room 2" 
     }] 
    }, 
    { 
     "name":"First Floor", 
     "rooms":[{ 
      "name": "Room 3" 
     }, 
     { 
      "name": "Room 4" 
     }] 
    }] 
    }, 
    { 
    "name": "Another Building", 
    "id": "building_2", 
    "floors":[{ 
     "name":"Ground Floor", 
     "rooms":[{ 

     }] 
    }, 
    { 
     "name":"First Floor", 
     "rooms":[{ 

     }] 
    }] 
}] 

我现在有一个基本的应用程序设置,显示建筑物和地面上默认的'路线的每个建筑的名单。

我想用路由器,APP /#buildingId /显示楼层的名单与“buildingId”建筑和APP /#buildingId /#floorId显示房间的相关名单等

JSBIN的我当前的代码(不data.json) - http://jsbin.com/welcome/5850/edit

大量的代码可能是过时了,但我是想不同的方式来构建模型/收藏品。这个应用程序永远不会超过只读,这就是为什么我使用静态文件。


类似的问题:How to use JSON to power interactive Backbone.js app

提出不使用路由器在所有的解决方案。

回答

1

这是你问什么?:

// code simplified and no tested 
App.Router = Backbone.Router.extend({ 

    routes: { 
    "/APP/:buildingId/:floorId": "showRooms", 
    "/APP/:buildingId":   "showFloors" 
    }, 

    showRooms: function(buildingId, floorId) { 
    // code to show the rooms 
    }, 

    showFloors: function(buildingId) { 
    // code to show the floors 
    }, 

}); 

还是我失去了一些东西?

+0

是的,几乎这个。现在我到了这个阶段,在那里玩弄路由器功能,但我无法弄清楚代码能够正确显示楼层或房间。查看更新后的jsbin:http://jsbin.com/uzohuy/1/edit这类作品。在路径APP /#0中,它是第一个建筑物的ID,它正确返回对象,但我不能从名称以外的模板中访问任何属性。所有属性(除名称外)都返回错误:'未捕获的ReferenceError:id未定义'。我可以通过以下方式访问控制台中的所有属性:'singleBuilding.models [0] .get('name')' – 2012-07-29 20:25:43

+0

@MiloszFalinski如果我明白您正在寻找完全实现非常个人的情况。恐怕这超出了StackOverflow的范围。我们可以帮助您解决与任何具体业务逻辑无关的更抽象和具体的问题。 – fguillen 2012-07-29 23:06:22

+0

谢谢,我不确定,但这是可以理解的。尽管代码看起来有点冒险,但我现在主要知道它了。既然你的答案与我所做的很相似,我很乐意将问题标记为已回答。 – 2012-07-30 09:55:01

相关问题