簡體   English   中英

跟蹤復選框狀態並為ng-model使用多個數據

[英]Tracking the checkbox status and use multiple data for ng-model

我這里有個情況。 我有兩個復選框。

<span class="flex-3"><input  type="checkbox" ng-model="station.val.fingerprint_scanner" ng-click="updateAccessMode(station.key,'fingerprint_scanner', station.config_group)" /></span>
<span class="flex-3"><input type="checkbox" ng-model="station.val.id_card" ng-click="updateAccessMode(station.key,'card_scanner', station.config_group)" /></span>

station.val.fingerprint_scannerstation.val.id_card是我從數據庫獲取的值。 並根據station.val.fingerprint_scannerstation.val.id_card選中並取消選中此復選框。

現在,因為我已經分配了ng-model 如果用戶進行了任何更改,如何獲得station.val.fingerprint_scannerstation.val.id_card的值。 根據當前情況。 我直接調用了一個函數updateAccessMode()並分配了一個像這樣的靜態值

reqdata.access_mode = JSON.stringify({
    "id_card" : true,
    "fingerprint_scanner" : true
})

因此,根據此結果,無論是否單擊復選框,id_card和Fingerprint_scanner始終為true。 基本上,我這里有硬編碼的值。 現在,我希望這些值是true還是false取決於復選框的狀態。 現在我已經使用了ng-model 。所以我很困惑這里我將如何跟蹤復選框狀態。

我想到的一種可能的解決方案是將多個值綁定到ng-model 但是我不建議這樣做。 還是有其他最佳解決方案?

注意:此復選框位於ng-repeat 我不想更改ng-model

使用ng-checked="station.val.fingerprint_scanner"而不是ng-model="station.val.fingerprint_scanner"然后使用ng-click以更新所需的值,甚至將其分配給ng-model="station.key.fingerprint_scanner"

由於您尚未共享ng-repeat代碼以及updateAccessMode()函數的作用,因此很難提供確切的解決方案

好的,所以我想出了解決方案。 我知道我不需要復選框的兩種方式的數據綁定,所以我刪除了ng-model 抱歉,我誤會了。 並使用@Karthikeyan提到的ng-checked ,為此+1。 並根據其索引更新了復選框狀態。 這是HTML

<span class="flex-3"><input  type="checkbox" ng-checked="station.val.fingerprint_scanner" ng-click="updateAccessMode(station.key,'fingerprint_scanner', station.config_group, $index)" /></span>
<span class="flex-3"><input type="checkbox" ng-checked="station.val.id_card" ng-click="updateAccessMode(station.key,'card_scanner', station.config_group, $index)" /></span>

還有JS

if(mode == "fingerprint_scanner"){
            reqdata.access_mode = JSON.stringify({
                        "id_card" : id_card_data,
                        "fingerprint_scanner" : !fingerprint_data
            })
}else{
            reqdata.access_mode = JSON.stringify({
                        "id_card" : !id_card_data,
                        "fingerprint_scanner" : fingerprint_data
            })
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM