为什么单击按钮时警报显示两次?
Why is the alert displayed two times on button click?
您能告诉我为什么单击按钮时警报会显示两次吗?
这是我的笨蛋
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")
};
}]);
});
如果您使用更新版本的 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'
]
});
问题已修复,您使用了过时的缩小版 ionic 和 requirejs 非缩小版。
只需将您的离子版本更改为 --
http://code.ionicframework.com/1.0.0/js/ionic.bundle.js
并要求
RequireJS 2.1.17
它工作正常...在您的 fiddle
中更改版本
angularjs 摘要周期至少运行两次。所以,警报出现两次的原因可能是摘要周期。
但是其他人说换个版本,你只会收到一次警报。但是如果你不想改变版本,有一个解决方法:
$scope.login = function () {
alert("Login is clicked");
$scope.login = function(){
return false;
}
};
此方法只允许您调用函数一次。这可能对其他想要停止摘要循环的人有所帮助。
您能告诉我为什么单击按钮时警报会显示两次吗?
这是我的笨蛋 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")
};
}]);
});
如果您使用更新版本的 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'
]
});
问题已修复,您使用了过时的缩小版 ionic 和 requirejs 非缩小版。
只需将您的离子版本更改为 -- http://code.ionicframework.com/1.0.0/js/ionic.bundle.js
并要求 RequireJS 2.1.17
它工作正常...在您的 fiddle
中更改版本angularjs 摘要周期至少运行两次。所以,警报出现两次的原因可能是摘要周期。
但是其他人说换个版本,你只会收到一次警报。但是如果你不想改变版本,有一个解决方法:
$scope.login = function () {
alert("Login is clicked");
$scope.login = function(){
return false;
}
};
此方法只允许您调用函数一次。这可能对其他想要停止摘要循环的人有所帮助。