2016-10-12 126 views
1

Meteor的好处之一是您只需在需要渲染内容时加载内容,例如,如果您在/ imports/ui/client中有模板文件,则除非您将它导入到某处,否则不会加载它。但是,在使用铁路路由器时,我一直无法确定如何仅在需要通过适当的路由呈现模板时才包含模板。一种方法我试过是申报进口的路由功能:使用铁路路由器导入流星中的模板

Router.route('/', function() { 
    import '/imports/ui/client/home.js'; 
    this.render('home'); 
}); 

这成功地加载模板文件,虽然我从来没见过的铁路由器文档中的任何实例做这种方式和我我有一些以前没有的JavaScript问题,因此我怀疑这是正确/最好的方法。

将Meteor与Iron Router结合使用时只有在需要时才包含模板的最佳方式是什么?

+0

一个我上面提到的JavaScript的问题是,如果在我的home.js从上面的例子文件包含HTML模板import语句,并然后是一些JavaScript,JavaScript在HTML模板加载之前呈现。 HTML模板需要首先渲染。 – Barry

回答

0
import '/imports/ui/client/home.js'; 

Router.route('/', function() { 

    this.render('home'); 
}); 

这是因为在大多数的examples提到的“标准”的方式,但我看到你的方式没有坏处。

+0

谢谢。但是,我不明白这是如何工作的。假设我在启动文件夹或根文件夹下的routes.js文件中定义了此路由,home.js中包含的模板将始终加载到应用中,而不是仅在主页被渲染时加载。 – Barry

+0

可以请你分享一个回购或锅炉板? – Ankit

0

我不喜欢这样......

Router.route('/join', { 
    name: 'join', 
    onBeforeAction: function() { 
    import '../../ui/pages/join/join.js'; 
    this.next(); 
    } 
});