Почему предупреждение отображается два раза при нажатии кнопки?
Не могли бы вы рассказать мне, почему предупреждения отображаются два раза при нажатии кнопки?
вот мой плункер
http://plnkr.co/edit/vtmYAG2d1gmnPjnxovJw?p=preview
/*global define, console */
define(['app'], function(app){
'use strict';
app.controller('LoginCtrl', ['$scope', function($scope) {
$scope.login = function () {
alert("Login is clicked")
};
}]);
});
Ответы
Ответ 1
Если вы используете более новую версию Ionic, она работает:
http://plnkr.co/edit/K2BLrUyOEeoDxHc9LyTl?p=preview
Я использовал http://code.ionicframework.com/1.0.0/js/ionic.bundle.min.js
ваш пример использует
http://code.ionicframework.com/1.0.0-beta.1/js/ionic.bundle.min.js
requirejs.config({
paths: {
ionic:'http://code.ionicframework.com/1.0.0/js/ionic.bundle.min',
},
shim: {
ionic : {exports : 'ionic'}
}, priority: [
'ionic'
],
deps: [
'bootstrap'
]
});
Ответ 2
Исправлена проблема, что вы использовали устаревшую минитипированную версию ионной и requirejs без ограничений.
Просто измените свою ионную версию на -
http://code.ionicframework.com/1.0.0/js/ionic.bundle.js
и requireJs для
RequireJS 2.1.17
он отлично работает... измените версию в своей скрипке
Ответ 3
Цикл дайджест работает как минимум два раза по угловым. Таким образом, вероятно, причина для предупреждения появляется два раза - цикл дайджеста.
Но другие сказали изменить версию, и вы получите оповещение только один раз. Но если вы не хотите менять версию, это обходное решение:
$scope.login = function () {
alert("Login is clicked");
$scope.login = function(){
return false;
}
};
рабочая демонстрация
Этот метод позволяет вызывать функцию только один раз. Это может быть полезно для тех, кто хочет остановить цикл дайджест.