2015-02-20 2 views
0

Im развивающийся с onsen ui + angularjs. Мое приложение имеет способы доступа к различным разделам, один для «домашней» страницы, другой - для бокового меню. Когда я использую «домашнее» меню, и я обращаюсь к любому элементу своего списка, он работает отлично, но если я использую боковое меню, и я пытаюсь получить доступ к любым элементам хром-отладчика, покажите мне эту ошибку:Onsen ui error "TypeError: Невозможно прочитать свойство pushPage от нуля"

ТипError: Не удается прочитать свойство 'pushPage' нулевых на Scope. $ scope.showPost (http://recorramisiones.com.ar/rutadelaselva/app2/js/app.js:103:26) в $ parseFunctionCall (http://recorramisiones.com.ar/rutadelaselva/app2/lib/onsen/js/angular/angular.js:12133:18) в http://recorramisiones.com.ar/rutadelaselva/app2/lib/onsen/js/onsenui.js:15815:21 на Scope. $ get.Scope. $ Eval (http://recorramisiones.com.ar/rutadelaselva/app2/lib/onsen/js/angular/angular.js:14123:28) на Scope. $ get.Scope. $ apply (http://recorramisiones.com.ar/rutadelaselva/app2/lib/onsen/js/angular/angular.js:14221:23) at HTMLElement.click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste.split.f orEach.ngEventDirectives (анонимная функция) .compile.listener (http://recorramisiones.com.ar/rutadelaselva/app2/lib/onsen/js/onsenui.js:15814:25) в HTMLElement.eventHandler (http://recorramisiones.com.ar/rutadelaselva/app2/lib/onsen/js/angular/angular.js:3013:21)

Мой проект URL:. http://recorramisiones.com.ar/rutadelaselva/app2/

Скриншот: http://puu.sh/g4Zr5.jpg

menu.html (боковое меню):

<ons-page modifier="menu-page"> 
<ons-toolbar modifier="transparent"></ons-toolbar> 

<ons-list class="menu-list"> 
<ons-list-item class="menu-item" ng-click="menu.setMainPage('home.html', {closeMenu: true})"> 
    <ons-icon icon="fa-home" fixed-width="true"></ons-icon> 
    Inicio 
</ons-list-item> 
<ons-list-item class="menu-item" ng-click="menu.setMainPage('areas.html', {closeMenu: true})"> 
    <ons-icon icon="fa-leaf" fixed-width="true"></ons-icon> 
    Areas Naturales 
</ons-list-item> 
<ons-list-item class="menu-item" ng-click="menu.setMainPage('informes.html', {closeMenu: true})"> 
    <ons-icon icon="fa-info-circle" fixed-width="true"></ons-icon> 
    Informes Turísticos 
</ons-list-item> 
<ons-list-item class="menu-item" ng-click="menu.setMainPage('atractivos.html', {closeMenu: true})"> 
    <ons-icon icon="fa-camera" fixed-width="true"></ons-icon> 
    Atractivos y Actividades 
</ons-list-item> 
<ons-list-item class="menu-item" ng-click="menu.setMainPage('alojamientos.html', {closeMenu: true})"> 
    <ons-icon icon="fa-building" fixed-width="true"></ons-icon> 
    Alojamientos 
</ons-list-item>  
<ons-list-item class="menu-item" ng-click="menu.setMainPage('hospitales.html', {closeMenu: true})"> 
    <ons-icon icon="fa-plus-square" fixed-width="true"></ons-icon> 
    Hospitales y Servicios 
</ons-list-item> 
<ons-list-item class="menu-item" ng-click="menu.setMainPage('markers.html', {closeMenu: true})"> 
    <ons-icon icon="fa-map-marker" fixed-width="true"></ons-icon> 
    Mapa 
</ons-list-item> 
</ons-list> 
</ons-page> 

home.html (главное меню)

<ons-navigator animation="slide" var="gallery"> 
    <ons-page> 
    <ons-toolbar modifier="opacity"> 
     <div class="left"> 
     <ons-toolbar-button ng-click="menu.toggle()"><ons-icon icon="ion-navicon-round" fixed-width="false"></ons-icon></ons-toolbar-button> 
     </div> 
     <div class="center">Ruta de la Selva</div> 
    </ons-toolbar> 
    <div class="app-page"> 
     <div class="app-page-menu"> 
     <ons-row> 
      <ons-col> 
      <ons-button modifier="clean" ng-click="gallery.pushPage('alojamientos.html');"> 
       <img src="img/alojamientos.jpg"> 
       <p>Alojamientos</p> 
      </ons-button> 
      </ons-col> 
     </ons-row> 
     <ons-row> 
      <ons-col> 
      <ons-button modifier="clean" ng-click="gallery.pushPage('informes.html');"> 
       <img src="img/informes.jpg"> 
       <p>Informes Turísticos</p> 
      </ons-button> 
      </ons-col> 
     </ons-row> 
     <ons-row> 
      <ons-col> 
      <ons-button modifier="clean" ng-click="gallery.pushPage('atractivos.html');"> 
       <img src="img/actividades.jpg"> 
       <p>Atractivos y Actividades</p> 
      </ons-button> 
      </ons-col> 
     </ons-row> 
     <ons-row> 
      <ons-col> 
      <ons-button modifier="clean" ng-click="gallery.pushPage('areas.html');"> 
       <img src="img/areas.jpg"> 
       <p>Áreas Naturales</p> 
      </ons-button> 
      </ons-col> 
     </ons-row> 
     <ons-row> 
      <ons-col> 
      <ons-button modifier="clean" ng-click="gallery.pushPage('dishes.html');"> 
       <img src="img/hospitales.jpg"> 
       <p>Hospitales y Servicios</p> 
      </ons-button> 
      </ons-col> 
     </ons-row> 
     <ons-row> 
      <ons-col> 
      <ons-button modifier="clean" ng-click="gallery.pushPage('markers.html');"> 
       <img src="img/map.jpg"> 
       <p>Mapa</p> 
      </ons-button> 
      </ons-col> 
     </ons-row> 
     </div> 
    </div> 
    </ons-page> 
</ons-navigator> 

Любая идея?

ответ

1

В случае, если вы используете основную страницу, вы нажимаете список мест на стек страницы навигатора. Это хорошо работает, потому что теперь вы можете также нажать следующую страницу поверх стека страниц.

В случае, когда вы используете меню, вы устанавливаете главную страницу в список мест (без навигатора). Поэтому, когда вы нажимаете, он не может нажать страницу, так как навигатор отсутствует.

В принципе, вы можете перейти на страницу типа «area.html» двумя способами: в которой у вас есть навигатор, а другой - там, где вы этого не сделали. Я бы посоветовал вам использовать один навигатор на странице и иметь меню поверх всего, чтобы он всегда был доступен.

+0

Привет, Андреас, спасибо за ваш быстрый ответ, я понимаю вашу проблему с анализом, но я не следую вашему решению ... Я обновляю свой вопрос с помощью обоих кодов, menu.html и home.html – Gaston

+0

Что я имел в виду, так это то, что вы используете setMainPage() на странице «home», а также одну навигационную страницу на странице галереи. Это будет хорошо. –

Смежные вопросы