[英]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.fleetcheckitemid或option.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.