Я хочу, чтобы мой тост появлялся в том месте, где пользователь уже размещен на странице (в представлении, которое он уже видит в браузере). Но почему-то каждый раз, когда появляется тост, страница перескакивает на другую позицию.Почему угловой материал 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!'));
};
})
Пожалуйста, смотрите ссылку с демо (прокрутите страницу вниз и нажмите на кнопку 'Show Тост': ngToast Example
Я хочу, чтобы тост появлялся в верхней части текущего вида и не переходил в верхнюю часть страницы каждый раз, когда он будет отображаться.
Кстати, если я изменю положение тоста на «внизу справа» - тост появится в правом нижнем углу кулака, а не в правом нижнем углу раздела, который просматривает пользователь.
Как я могу это исправить?
Спасибо.
Спасибо camden_kid, но это не поможет мне. Потому что я не хочу всегда показывать кнопку. В моем приложении у меня есть несколько карт с кнопками (что-то вроде Facebook), когда кто-то нажимает на кнопку на этих карточках, я не хочу, чтобы тост заставлял переходить на страницу. – iseif
@iseif Понял. Это интересная проблема. Должен быть способ сделать это, потому что демонстрационная страница делает это - https://material.angularjs.org/latest/demo/toast. Тост содержится в его карте и не отображается в верхнем правом углу страницы. Тост docs намекает на способ сделать это - https://material.angularjs.org/latest/api/service/$mdToast - но я не могу понять это. –
Я также попытался реализовать его, как они это сделали, но без успеха. BTW, если вы измените '.position (' top right ')' to '.position (' bottom right ')' - вы получите проводную проблему, тост появится в нижней части первого 'представления' стр. – iseif