2016-04-25 18 views
2

我有一個表單,並且在我提交這個表單之前,我想根據一個複選框來做某些事情,如果它被選中的話。如何知道使用ng-model的複選框的價值

這是我的複選框:

<input type="checkbox" name="resident" id="resident" 
       ng-model="resident" ng-init="resident=false"> 
在我的控制器

我有這樣的:

$scope.submitForm = function (isValid) { 

    if(!$scope.resident){ 
       //code... 
    }else{ 
       //code... 
    } 

} 

但我總是得到這個複選框爲未定義的值,即使我把它初始化爲false

我不想和ng-change一起工作,因爲我只需要知道複選框的值,而不必在更改時進行處理。

我該如何解決這個問題?

+0

value屬性從輸入中丟失 –

+0

@AnkurTiwari我已附加屬性值,但我仍然有相同的問題 –

+0

@DushyantBangal它總是打印undefined –

回答

2

您附加到問題的代碼不包含任何問題。問題在於你還沒有在這裏發佈的代碼中的其他地方。請參閱下面的代碼它的工作。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app=""> 
 
    
 
    <input type="checkbox" name="resident" id="resident" 
 
      ng-model="resident" ng-init="resident=false">{{resident}} 
 
    
 
</div>

可能的問題: 指的是連接到輸入複選框範圍有時會發生變化或模式已經在父母範圍,我們正試圖在孩子的範圍來操作。使用像batrang這樣的鉻工具,可以更好地引導您關於孩子和父母範圍檢查。

+0

使用該工具幫助我弄清楚什麼是問題,謝謝 –

1

查看:

<input type="checkbox" name="resident" id="resident" ng-model="resident.checked"> 

控制器:

$scope.resident = { 
    checked: false; 
} 

這就是它!模型將通過ng-model指令自動從false切換到true。 請參閱http://jsfiddle.net/Lvc0u55v/2989/

+1

值得補充的是,使用ng-init通常是不好的做法。這是因爲視圖在與控制器不同的時間初始化,並且摘要循環必須處理該功能,這是循環的不必要的附加。 – carlcheel

相關問題