繁体   English   中英

流星未捕获TypeError:无法读取未定义的属性“ push”

[英]Meteor Uncaught TypeError: Cannot read property 'push' of undefined

我的流星应用程序出现2个错误。 这些是下面的错误。 我正在使用accounts-ui-bootstrap-3,并试图在layout.html显示标题模板。

这是我的一些代码错误。

Uncaught TypeError: Cannot read property 'push' of undefined

Uncaught Error: There are multiple templates named 'layout'. Each template needs a unique name.

^^即使我只有一个名为layout的模板。

码:

的layout.html

 <template name="layout">
   <div class="container">
     {{>header}}
     <div id="main" class="row-fluid">
     {{>yield}}
     </div>
   </div>
 </template>

了header.html

<template name="header">
   <header class="navbar">
     <div class="navbar-inner">
       <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
       <span class="icon-bar"></span>
       <span class="icon-bar"></span>
       <span class="icon-bar"></span>
       </a>
       <a class="brand" href="{{pathFor 'postsList'}}">Test</a>
       <div class="nav-collapse collapse">
         <ul class="nav pull-right">
           <li>{{> loginButtons}}</li>
         </ul>
       </div>
    </div>
  </header>
</template>

为什么不显示登录按钮?

Router.js

Router.configure({
 layoutTemplate: 'layout',
 loadingTemplate: 'loading',
 waitOn: function() { return Meteor.subscribe('posts'); }
});
Router.map(function() {
 this.route('postsList', {path: '/'});

 this.route('postPage', {
    path: '/posts/:_id',
    data: function() { return Posts.findOne(this.params._id); }
 });
});

您是否使用mrt:accounts-ui-bootstrap-3或ian:accounts-ui-bootstrap-3? 如果您使用mrt:accounts-ui-bootstrap-3,它将不再起作用,因为不再受支持。 请改用ian:accounts-ui-bootstrap-3。

您可以省略登录按钮的li元素。 将您的标头包含项更改为以下{{> header}} ,请注意小插入符号。

编辑:

代替使用Router.map尝试使用Router.route像这样:

Router.route('/', {
  name: 'postsList' 
});

Router.route({'/posts/:_id',
  name: 'postPage',
  data: function() {
    return Posts.findOne(this.params._id);
  }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM