2014-10-06 94 views
0

我正在使用iron:[email protected]和流星9.3.1。如何在智能包中定义铁路路由器

我正在创建一个智能包。我想定义智能包内的路由,而不是主要的app.js文件。

我试图在js文件添加以下代码为智能软件包:

Router.route('/path', function() { 
    this.render('someTemplate'); 
}); 

上面的代码给出了一个“不限定路由器”错误。不知道在“package.js”文件的“Package.onUse(function(api)”中为“api.use”添加了什么:

是否可以在智能内部定义路由-package我怎样才能做到这一点

更新:??

加入iron:routerapi.use了“没有定义路由器”错误消失后

然而,路线仍然没有工作我。已在mypack.js中添加路线。mypack.js仅适用于客户端。

Package.onUse(function(api) { 
    api.versionsFrom('[email protected]'); 
    api.use(['iron:router', 'templating'], 'client'); 
    api.addFiles(['mypack.js', 'mypack.html'], 'client'); 
}); 
+0

你应该编辑这个包含github的链接,它解释了为什么它不起作用 – 2015-05-02 11:10:32

回答

2

是的,你需要定义你的包上铁路由器包的相关性。在package.js中,拨打api.onUse,只需加上api.use('iron:router')

+0

谢谢! “路由器未定义”错误现在消失了。我已经更新了这个问题。不知道如何在js文件中声明只有客户端可用的路由。 – 2014-10-06 19:16:06

+0

@AnishSingh,你应该可以像往常一样使用它,例如:'Router.route('/ home',{name:'home',template:'home'})''。 – 2014-10-06 19:58:50

+0

可悲的是它不工作。事实上,如果我将'Router.route('/',function(){this.render('hello'); }); if(Meteor.isClient)中的'inside'放在主app.js文件中,即使没有智能包装进入画面,路线也停止工作。 – 2014-10-07 02:47:01