私はこの特定の問題で運がなかった。私が見つけたものはすべて、自分の問題ではなくページをリフレッシュするという「問題を抱えている」問題を抱えている人たちと関係しています。これは、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で失敗します。