2014-09-10 59 views
3
angular.module('myApp') 
    .controller('pancakeController', ['$scope', '$window', function($scope, $window) { 

    $scope.panCakes = []; 

    $scope.removePancake = function(index) { 

     if($window.confirm('are you sure?')) { 
     $scope.panCakes.splice(index, 1); 
     } else { 
     $scope.panCakes.splice(index, 1); 
     } 
    }; 

}]); 

myApp已在其他文件中定義。我使用angular.module('myApp')來獲取對它的引用。

在刪除panCake之前嘗試使用window.confirm()來確認用戶,但在Chrome 37.0.2062.94中未彈出保密框但在Chrome Canary中有效。 我正在使用AngularJS $窗口對象,但使用常規window.confirm也不起作用。在我的代碼中是否存在缺少的內容,或者只是該特定版本的Chrome中的錯誤?

+2

有關忽略$窗口是什麼?只要'確認(「你確定?」)' – 2014-09-10 18:39:14

+0

@CollinHenderson整個使用$ window的一點,並且一般來說任何其他的注入依賴,就是你的控制器沒有綁定任何函數。在注入$ window的情況下,您可以創建驗證您的控制器邏輯的測試,沒有它您不能。 – le0diaz 2015-09-28 16:16:17

回答

11

最可能的原因是您在某些時候檢查了小複選框,表示您不想再看到此頁面上的任何警報/確認/提示。

(在其他的解決方案,關閉選項卡,並重新打開網頁在新標籤應恢復警報/確認/提示。)

+0

我會檢查一下。它適用於Chrome Canary,因此可能'37.0.2062.9'選中了此選項。 – 2014-09-10 20:03:44

+0

是的,足夠有趣這就是它。我在Chrome 37.0.2062.94中開了一個新的會話,它工作。 – 2014-09-10 22:14:57

+0

你節省了我的一天。我正在瀏覽我的所有JS文件以查找此錯誤... – 2014-12-11 14:11:26

0

我在同一個版本的Chrome,你是工作,上面的代碼沒有在小提琴的工作,你在angular.module的定義有語法錯誤

應該

angular.module('myApp',[]) 

取而代之的

angular.module('myApp') 

Working Fiddle

+0

我已更新我的anwser,該模塊在另一個文件中定義。我正在使用'angular.module('myApp')'來獲取對它的引用。 – 2014-09-10 20:02:41