问题描述
我想在不刷新/更改页面的情况下使用Iron Router“将路由关联到div”。 我会尽量清楚。
当您到达页面(例如: / home )时,我得到了一个未显示的div,但它已经存在。
单击某些内容(框,文本,...)时,URL会更改( / home / box1 ),并且div会显示一些我之前给定的数据。 但是我希望能够做到这一点而不必刷新页面,只是要看到div出现在同一页面中。
那么,铁路由器有可能吗?
谢谢你的帮助。
1楼
soren468
1
2015-07-25 15:26:00
如果您试图在两条路线上显示相同的模板,但仅在其中一条路线上显示div,则可以将数据传递到模板中。 render方法采用第二个参数,它是一个对象。 您可以将该对象的data属性设置为一个函数,该函数返回具有所有数据值的对象。 然后,您可以从模板访问它们,就像在插入模板时已定义它们一样。
Router.route('/home', function() { this.render('Home'); }); Router.route('/home/box1', function() { this.render('Home', { data: function() { return { showDiv: true } } } });
<head> </head> <body> </body> <template name="Main"> <p>Always showing</p> {{#if showDiv}} <p>Only showing when on /home/box1 route</p> {{/if}} </template>
注意:无论您身在何处,这都不会保留您所在的页面。 IE如果您想在/ other和/ other / box1路由上执行此操作。 如果这是您要寻找的行为,我也可以帮助您。