2016-07-28 4 views
0

私はこの特定の問題で運がなかった。私が見つけたものはすべて、自分の問題ではなくページをリフレッシュするという「問題を抱えている」問題を抱えている人たちと関係しています。これは、ChromeではなくIEでのみ発生します。UIルーターは状態変更の代わりにページを更新します

コード:

app.config(function ($stateProvider, $urlRouterProvider) { 
    $stateProvider 
     .state('box', { 
      templateUrl: templatePath + 'box.html', 
      controller: 'BoxController', 
      controllerAs: 'box', 
      url: '/Box/{folder:string}' 
     }) 
     .state('compose', { 
      templateUrl: templatePath + 'compose.html', 
      controller: 'ComposeController', 
      controllerAs: 'compose', 
      url: '/Compose/{messageSentId:int}' 
     }) 
     .state('view', { 
      templateUrl: templatePath + 'view.html', 
      controller: 'ViewController', 
      controllerAs: 'view', 
      url: '/Box/{folder:string}/{messageId:string}/{messageSentId:string}' 
     }); 

    $urlRouterProvider.otherwise('/Box/'); 
}); 

問題は私のコン状態です。もし私がそのような状態に直接行くなら、そういうふうに:

vm.compose = function() { 
    $state.go('compose', { messageSentId: 0 }, { notify: true }); 
}; 

それはうまく動作します。私は0以外に別の番号を追加し、異なるcontrollerから呼び出す場合しかし、それは動作しません:

vm.reply = function() { 
    var id = Math.floor($stateParams.messageSentId); 
    $state.go('compose', { messageSentId: id }, { notify: true }); 
}; 
私はそれが idが文字列だと思ったので、 /Compose/{messageSentId:int}に一致していなかったので、それは問題を抱えていたかもしれないと思った

だから私はMath.floor()を追加しましたが、それは助けになりませんでした。

私は自分の作成機能を起動し、その状態に戻ると、返信機能が働くことに注意してください。しかし、返信機能でナビゲートしようとすると、ページがリロードされます。

私が確認できるもう1つのことは、そのページのための私のcontrollerとページ自体がうまく読み込まれることです。実際にフォームがポップアップしているのを実際に見ることができます。問題は、controllerがロードされてリフレッシュがトリガーされた後です。エラーはありません。いいえ、別に。単にIEで失敗します。

答えて

0

ウェブで私の問題と似たようなことが何度も見つかって、私は簡単な変更を加えました。私は私のコントローラのうち、私の状態変化を移動し、使用したUI-SREF代わり:

コード:

「ビューは、」私は$スコープを使用していないと私は私の$ stateparameterを設定するので、私のcontrollerAsある
<div class="btn-group pull-right" ng-if="view.canReply()"> 
    <a class="btn btn-primary" ui-sref="compose({messageSentId: view.replyMessageId})"> 
     <i class="fa fa-reply"></i> Reply 
    </a> 
</div> 

変数replyMessageIdに多分これは誰かを助けるでしょう。

関連する問題