2016-11-10 36 views
0

我有這樣的HTML輸入複選框字段執行各種操作:角的1.x:如何當複選框被選中和未選中

<input type="checkbox" ng-change="itemChecked()"> Happy 

我Amgular 1.x的代碼是這樣的:

$scope.itemChecked = function(){ 
    // do something if checked 
    // Eg: I have a google map and when this function is called, 
    //  it loads marker and adds businesses name.   


    // return to original state when unchecked 
    // Eg: When checked, it loads business in Google Map, 
    //  but when unchecked, its supposed to remove marker 
    //  points from google maps, as if the page loaded 

}; 

我能:

//做一些事情,如果檢查

但我無法恢復到原始狀態。

我該怎麼做?

供參考:將有多個複選框,所以刷新頁面將無法正常工作。

回答

0

你可以通過函數內部的參數,並編寫相應的邏輯,

<input type="checkbox" ng-change="itemChecked(whatevervariable)"> 

在控制器

$scope.itemChecked = function(variable){ 
    if(variable) 
    { 
    //do this logic 
    } 
    else 
    { 
    //revert the logic 
    } 

}; 

DEMO

+0

如何在複選框被選中時傳遞變量?這不是輸入字段,而是輸入類型是複選框。點擊複選框時如何通過「檢查」? – asax

+0

@asax你可以這樣做http://jsfiddle.net/nptab14w/ – Sajeetharan

+0

我不想創建自己的指令。 if/else條件最適合我的項目,因爲還有其他依賴項。 – asax

0

附加NG-模型輸入,並檢查它的價值在你的改變功能

<input type="checkbox" ng-model="checked" ng-change="itemChecked()"> 

$scope.itemChecked = function(){ 
    if($scope.checked == true){ 
     // do something if checked 
    } 
    else{ 
     // return to original state 
    } 

}; 
+0

if($ scope.checked == true)...不起作用。它永遠不會遇到這種情況... – asax

相關問題