Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用iron router显示静态html文件_Javascript_Meteor_Meteor Helper - Fatal编程技术网

Javascript 如何使用iron router显示静态html文件

Javascript 如何使用iron router显示静态html文件,javascript,meteor,meteor-helper,Javascript,Meteor,Meteor Helper,我想使用iron router呈现普通html文件。但是,当我尝试这样做时,它会显示其他模板,而不是我使用iron router附加的模板 这是我的主要布局 <template name="mainLayout"> {{> yield region="navBar"}} {{> yield}} {{> yield region="footer"}} </template> 这是我要渲染的模板 <template name="aboutUs

我想使用iron router呈现普通html文件。但是,当我尝试这样做时,它会显示其他模板,而不是我使用iron router附加的模板

这是我的主要布局

<template name="mainLayout">

{{> yield region="navBar"}}

{{> yield}}

{{> yield region="footer"}}

</template>
这是我要渲染的模板

<template name="aboutUs">
  <p>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  </p> 
</template>


知识产权是一种权利,是一种精英的权利,是劳动和财富的暂时性权利。但是,在最低限度上,我们需要一个实验室来进行日常工作。两人或两人在一个无教区的房间里互相指责。除偶尔因疏忽而死亡外,不得因疏忽而导致动物死亡。


但是,与其呈现相应的aboutUs页面,不如在aboutUs页面上再次呈现singlePost模板。请帮助我,我不确定这是不是最好的办法,但这应该能解决这个问题

  • 为html文件创建一个控制器
    about_us_controller.js

    this.AboutController = RouteController.extend({
    template: "aboutUs",
    action: function() {
       this.render();
    }
    });
    
  • 在您的
    router.js中声明它

    Router.map(函数(){

    this.route(“aboutUs”,“path:/about”,controller:“AboutController”});

    //添加所有其他路线
    })

  • ps:对不起,我无法正确显示代码

  • 您现在可以使用中的
    {{{pathFor'aboutUs'}}
    访问您的'aboutUs'模板,例如,使用链接
    href
    属性

  • 声明路由的切换顺序,因为
    signlePost
    路由模式也匹配“/about”


    也许地图功能太过了。只需使用
    Router.route(“/about”,{name:'aboutUs',controller:'AboutController})
    在你的
    router.js
    中,我也试过了,但就是不起作用。我不明白为什么它还在做同样的事情。仍然会生成singlePost模板而不是aboutUs模板。谢谢,这很有效,但还有一个问题。当我试图将其连接到保存mainLayout模板的BaseController(即在base.js中我有
    BaseController=RouteController.extend({layoutTemplate:'mainLayout'))时,它向我显示错误和在about_us.js
    AboutController=BaseController.extend({template:“aboutUs”})中和它的showing me reference error BaseController未定义,但它正在与我拥有的其他控制器一起工作,就像PostController一样。文件按字母顺序包含。你能把你的base.js重命名为0base.js然后试试吗?我真蠢。这很有效,谢谢。但是,建议这样命名吗?因为文件是按字母顺序包含的,如果同一文件夹中的不同文件引用了特定变量,理想情况下应该在其前面加上数字前缀,以便首先包含该文件。我不太确定是否推荐,但这是一个很好的解决方案。这是一个常规的解决方法。如果您想让它更漂亮,请将其命名为
    0\u base
    ,并将数字旋转应用于其他文件。您应该验证@kaoskeya答案。
    this.AboutController = RouteController.extend({
    template: "aboutUs",
    action: function() {
       this.render();
    }
    });
    
    Router.route("/about", function(){
        this.render("aboutUs")
    });
    Router.route("/:_id",{
        name: 'signlePost',
        controller: 'singlePostController'
    });