簡體   English   中英

AngularJS不在數組中找到值

[英]AngularJS not finding values in array

我開發了一個AngularJS應用。

在視圖上,我有一個項目列表-每個項目都有其自己的單選按鈕集。 列表和按鈕是在運行時通過API調用構建的。

列表和單選按鈕都可以是任意長度,例如,列表項1可能包含3個單選按鈕,而列表項n可能包含2個單選按鈕。

當用戶選擇單選按鈕時,我會觸發ng-click方法,該方法會將列表ID和單選按鈕ID都發送到控制器。

該視圖如下所示,我已經對此進行了測試,並且值已發送到控制器。

<label class="radio-button" ng-repeat="option in checkItemDescription.options">
    <input type="radio" name="option_question_id_{{checkItemDescription.fleetcheckitemid}}" 
                            ng-model="checkItemDescription.selected_id"
                            ng-click="doSomething(checkItemDescription.fleetcheckitemid, option.fleetcheckid)"
                            ng-value="option.fleetcheckid">
    <div class="radio-button__checkmark"></div>
    Description: {{option.checkvaluedesc}}
</label>

在我的doSomething()方法中,我試圖查看checkItemDescription.fleetcheckitemidoption.fleetcheckid id是否在現有數組中。

我使用indexOf()方法比較這些值,但是該方法似乎不起作用-即使console.log()顯示將值發送到控制器。

下面是我的doSomething()方法。

$scope.doSomething = function(fleetCheckItemID, fleetCheckID)
{
    if ( $scope.initialFleetCheckIssueItemIDArray.indexOf(fleetCheckItemID))
    {
        console.log("Yeah!"); // Never gets to here even though logs show values exist
    }
    else
    {
        console.log("Ah!"); // Always get here
    }
}

我需要做的是創建一個JSON對象,其中包含列表項ID,單選按鈕ID和其他一些值,例如基於要發送到我的數據庫的用戶選擇的日期/時間。

這是最好的方法還是有更好的方法?

indexOf()方法返回可以在數組中找到給定元素的第一個索引;如果不存在,則返回-1。

MDN引用。

因此,如果您的元素在集合中位於第一個位置,則indexOf將返回0,這將導致else塊的執行,因此請更改您的if條件。

if ( $scope.initialFleetCheckIssueItemIDArray.indexOf(fleetCheckItemID) != -1 )
{
    //element found, do stuff here.
}
else
{
    //element does not found, else stuff here.
}

暫無
暫無

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

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