簡體   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