2016-07-07 18 views
0

私の問題は以下のバグとして説明されている問題と似ています:https://forum.ionicframework.com/t/blocker-bug-with-state-go-navigation/11036 しかし、上記のバグであるという具体的な証拠はありません。 。

私はアプリでルーティングのための角度uiルータを使用しており、私は同じで非常に奇妙な問題に直面しています。ここで は私のルータの設定が

.state('test', { 
    url: "/test", 
    templateUrl  : "templates/session/finalprofile.html", 
    controller  : 'LoginCtrl' 
    }) 

.state('login', { 
    url: "/login", 
    templateUrl  : "templates/mainLogin.html", 
    controller  : 'LoginCtrl' 
    }) 

.state('app.feed', { 
     url: '/feed', 
     views: { 
     'menuContent': { 
      templateUrl: 'templates/feed.html', 
      controller: 'PlaylistsCtrl' 
     } 
     } 
    }) 

    .state('app.phabIssue', { 
    url: '/phabIssue', 
    views: { 
     'menuContent': { 
     templateUrl: 'templates/phabIssue.html', 
     controller: 'Pabricatortrl' 
     } 
    } 
    }) 

である私の最初のビューには、私は私の「LoginCtrl」の内側にしています「ログイン」状態名でログイン図です。これは、ネストされていないビューであることがわかります。
私はルーティングのために$ state.goを使用します。次の文

$state.go('test')

作品が、

$state.go('app.feed')

は動作しません。

私は、私は同様にネストされていない状態のいずれかへのルート以下のエラー

ionic.bundle.js:25642 TypeError: Cannot read property '@' of null at updateView (ionic.bundle.js:62346) at ionic.bundle.js:62337 at Scope.$broadcast (ionic.bundle.js:29477) at Object.load (ionic.bundle.js:49661) at Object.injectables.$template (ionic.bundle.js:49561) at Object.invoke (ionic.bundle.js:17762) at proceed (ionic.bundle.js:46577) at invoke (ionic.bundle.js:46573) at ionic.bundle.js:46552 at $Resolve.resolve (ionic.bundle.js:46656)

をすることができます取得しています。

@jbrown。これはアプリルートです

.state('app', { 
    url: '/app', 
    abstract: true, 
    templateUrl: 'templates/menu.html', 
    controller: 'AppCtrl', 
    onEnter: function($state, Auth){ 
     if(!Auth.isLoggedIn()){ 
      $state.go('login'); 
     } 
    } 

    }) 

これはあなたのコードを追加したmenu.htmlです。

<ion-side-menus enable-menu-with-back-views="false"> 
<div ui-view="menuContent"></div> 

    <ion-side-menu-content> 

    <ion-nav-bar class="bar-positive"> 
     <ion-nav-back-button class="button button-clear"> 
     <i class="ion-arrow-left-c"></i> 
     </ion-nav-back-button> 

     <ion-nav-buttons side="left"> 
     <button class="button button-icon button-clear ion-navicon" menu-toggle="left"> 
     </button> 
     </ion-nav-buttons> 
    </ion-nav-bar> 

    <ion-nav-view name="menuContent"></ion-nav-view> 

    </ion-side-menu-content> 

    <ion-side-menu side="left"> 
    <ion-header-bar class="bar-stable"> 
     <h1 class="title">App title</h1> 
    </ion-header-bar> 
    <ion-content> 
     <ion-list> 
     <!-- <ion-item menu-close ng-click="login()"> --> 
     <ion-item menu-close href="#/app/mainLogin"> 
      Login 
     </ion-item> 
     <ion-item menu-close href="#/app/feed"> 
      Feed 
     </ion-item> 
     <ion-item menu-close href="#/app/phabIssue"> 
      Phab 
     </ion-item> 
     </ion-list> 
    </ion-content> 
    </ion-side-menu> 
</ion-side-menus> 

私は間違いを犯していますか、これはルーティングやバグの正しい方法ではありませんか? この問題を解決するのを助けてください。

+1

でアクションでそれを見ることができ

app.html

<div ui-view="menuContent"></div> 

.state( 'app.phabIssue' ... – jbrown

+1

...の後に中括弧/かっこを入れてください.state( 'app.phabIssue'、{...})は2回表示されます – jbrown

+0

これは単なるコピー貼りエラーです – Yatin

答えて

0

あなたは、このような「アプリ」の親ビューとルートを設定する必要があります。

.state('app', { 
    url: '/app', 
    templateUrl: 'app.html' 
}) 

コントローラは、UIビューディレクティブを組み込んで親ビューを追加します。あなたは私はあなたの質問ではそのわずかのコピー/貼り付けエラー推測しているが、の余分なセットがあります。この作業

+0

私はあなたが私に変えたいと思っていたものを手に入れませんでした。私はちょうどapp.html(私の場合はmenu.html)の中にコードを貼り付けました。私はmenu.htmlとそれに必要なルーティングの両方を含むように質問を更新しました。上記で提案した変更を加えた後でも、私は同じエラーを受けています。 – Yatin

+0

@ Yatin - これはイオンに特異的かもしれないようです。残念ながら、私はイオンの経験がないので、私はその特定のエラーで多くの助けをすることができますか分からない。ルーティングの設定方法に問題があったと思っていましたが、それ以上のことがあるようです。 – jbrown

+0

おそらく上記のバグと関係がありますが、とにかく助けを求めるjbrownに感謝します。 – Yatin

関連する問題