2013-04-29 5 views
5

Tôi đang gọi notification.confirm của phonegap trong khi sử dụng angular-js.notification.confirm gọi lại chức năng gọi là luôn luôn

tôi có mã như:

ng-click= func(item) 

$scope.func = function(item) { 
navigator.notification.confirm('Delete?', func2(item)); 
} 

function func2 (item) { 
console.log("Ohk call"); 
} 

Tôi muốn các Func2 được gọi là chỉ khi người dùng nhấn vào nút xác nhận trên hộp xác nhận. Nhưng điều xảy ra là nó được gọi ngay sau khi thông báo xuất hiện mà không cần nhấp vào nút bất kỳ. Cách giải quyết vấn đề này?

+0

Vui lòng cung cấp đoạn html chính xác với ng-click. – Yaroslav

Trả lời

8

Đây là ans đúng với nó:

$scope.func= function (item) { 
     navigator.notification.confirm('Delete?', function(button) { 
      if (button == 1) { 
       func2(item); 
      } 
     }); 
    }; 

Giá trị nút là 1/2 trong số đó dựa trong các nút, 'Xác nhận'/'Hủy' được nhấp. Trong trường hợp 'nút' xác nhận của tôi có giá trị là 1 và do đó kiểm tra bình đẳng.

2

Đó là vì bạn đã gọi hàm func2 bên trong func. Bạn chỉ cần chuyển một hàm làm đối số, không gọi hàm đó:

$scope.func = function(item) { 
    navigator.notification.confirm('Delete?', function() { 
     func2(item) 
    }); 
} 

Bằng cách này, hàm sẽ chỉ được gọi khi bạn xác nhận thông báo.

+0

Điều kỳ diệu! cảm ơn bạn rất nhiều .. :) –

+0

Này điều này không hoạt động ... chức năng func2 được gọi ngay cả khi tôi bấm vào nút hủy –

+0

cho chúng tôi thấy mã mới của bạn! –