12

Bạn có thể cho tôi biết lý do cảnh báo hiển thị hai lần khi nhấp vào nút không?Tại sao cảnh báo được hiển thị hai lần khi nhấp vào nút?

đây là plunker tôi 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") 
     }; 

    }]); 

}); 
+0

Thật kỳ lạ. Có vẻ như để khởi động ng-click cả trên mousedown và mouseup - nếu bạn bấm vào nút giữ chuột xuống, di chuyển chuột ra khỏi nút và sau đó nhả chuột, nó chỉ kích hoạt một cú nhấp chuột. – Fissio

+0

vì vậy những gì đang làm việc xung quanh .. có bất kỳ possiblity mà tôi đang sử dụng Ionic với yêu cầu js có thể là lý do tại sao nó hoạt động như vậy – user944513

+0

chúng tôi có thể sử dụng requirejs với ionic khuôn khổ – user944513

Trả lời

1

Nếu bạn sử dụng một phiên bản mới hơn của Ionic nó hoạt động: http://plnkr.co/edit/K2BLrUyOEeoDxHc9LyTl?p=preview

tôi đã sử dụng http://code.ionicframework.com/1.0.0/js/ionic.bundle.min.js

dụ bạn sử dụng 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' 
] 

});

0

Sự cố đã khắc phục sự cố bạn đã sử dụng phiên bản tối thiểu đã lỗi thời của ionic và requirejs không được rút gọn.

Chỉ cần thay đổi phiên bản ion của bạn để - http://code.ionicframework.com/1.0.0/js/ionic.bundle.js

và requireJs để RequireJS 2.1.17

nó làm việc tốt ... thay đổi phiên bản trong fiddle bạn

0

Chu trình tiêu hóa chạy ở ít nhất hai lần bởi angularjs. Vì vậy, có lẽ lý do cho cảnh báo xuất hiện hai lần là chu trình tiêu hóa.

Nhưng những người khác đã nói thay đổi phiên bản và bạn sẽ nhận được cuộc gọi cảnh báo chỉ một lần. Nhưng nếu bạn không muốn thay đổi phiên bản, có một cách giải quyết như sau:

$scope.login = function() { 
    alert("Login is clicked"); 
    $scope.login = function(){ 
    return false; 
    } 
}; 

working demo

Phương pháp này cho phép bạn gọi hàm chỉ một lần. Nó có thể hữu ích cho những người khác muốn ngừng chu kỳ tiêu hóa.

Các vấn đề liên quan