私は自分のトーストを、ユーザーがすでにページに置かれている位置(ブラウザで既に表示されているビュー)に表示したいと思っています。しかし、どういうわけか、トーストが表示されるたびにページが別の位置にジャンプしています。なぜ角度材料ngToastがページをジャンプさせるのですか?
index.htmlを
<div ng-controller="AppCtrl" layout-fill="" layout="column" class="inset toastdemoBasicUsage" ng-app="MyApp">
<div ng-repeat="n in [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16, 17, 18, 19, 20]">
<p>{{$index}}</p>
</div>
<div layout="row" layout-sm="column" layout-align="space-around">
<md-button ng-click="showToast()">
Show Toast
</md-button>
</div>
</div>
app.js
angular.module('MyApp')
.controller('AppCtrl', function($scope, $mdToast) {
$scope.showToast = function() {
$mdToast.show($mdToast.simple().position('top right').textContent('Hello!'));
};
})
スクロールダウンし、 'ショートースト' ボタンをクリックしてください(デモでは、次のリンクを参照してください:ngToast Example
私はトーストを現在のビューの一番上に表示し、表示されるたびにページの先頭にジャンプしないようにします。
ところで、私がトーストポジションを「右下」に変更すると、トーストは、ユーザーが見ているセクションの右下ではなく、最初のビューの右下に表示されます。
どうすれば修正できますか?
ありがとうございました。あなたのカード(複数可)を使用すると、要素にトースト親を設定することができIDを与える場合CodePen
- ここでは、以下のコメントに関して
ありがとうございましたcamden_kid、これは私を助けません。なぜなら、私はいつもボタンを表示したくないからです。私のアプリでは、誰かがこれらのカード上のボタンをクリックしたときに、ボタンが付いたカード(Facebookのようなもの)をいくつか持っていますが、私はトーストでページジャンプをしたくありません。 – iseif
@iseifそれは興味深い問題です。デモページはhttps://material.angularjs.org/latest/demo/toastを実行するため、実行する方法が必要です。トーストはカードの中に入っており、ページの右上には表示されません。トーストのドキュメントは、https://material.angularjs.org/latest/api/service/$mdToastという方法でヒントしていますが、わかりません。 –
私はそれをどのようにして実装しましたが、成功しませんでした。ところで、 '.position('右上 ')'を '.position('右下 ')に変更すると、有線の問題が発生し、トーストがその最初の'ビュー 'の下部に表示されますページ。 – iseif