簡體   English   中英

如果數組中已經存在特定的ng-option,則隱藏它

[英]hide a specific ng-option if it's id already exists in array

我有一個下拉菜單,用於在頁面上添加綁定到$ scope的項目。 我基本上想確保不向數組中添加雙精度字,所以我的想法是對隱藏在數組中的選項進行ng-hide隱藏。 我不知道是否可以做這樣的事情,因為ng-options在select里面,所以我不知道我是否可以將ng-hide附加到它們的開頭。

無論如何,如果范圍內已經存在該選項,我想隱藏該選項。

我本以為你會遍歷每個並檢查一下,這是我的嘗試

$scope.checkifExist = function () {
    var ifExist = false;
    angular.forEach($scope.promptsPlease, function (data) {

        if (data.id == $scope.promptsPlease.id){

            ifExist = true;
        }

    });
    return ifExist;

    };

所以控制器中的選擇看起來像

  <select ng-model="fadingSelected" ng-options="type.name for type in fadingTypes track by type.id" ng-hide="checkIfExist()">
            </select>

我不知道這是否有可能,而且我想我可能正將這一切都弄錯了。 這樣做的想法是,這樣我就不能將相同的對象兩次添加到綁定到作用域的數組中。 不一定要隱藏,這會很好。 任何幫助,將不勝感激! 謝謝閱讀。

先前的答案可能適用於您的問題( https://stackoverflow.com/a/19329910/1036025 )。

這是包含的演示(插件): http ://plnkr.co/edit/Sf3el0FyUptWq28XqZnI?p=preview

它說明了實現此目的的3種方法。 一種是使用庫lodash來操縱數據並創建可用選項的過濾列表,而不是使用angular.each

我建議您查看說明中的第3個說明的選項(使用過濾器的替代方法)。

我認為只有在ng-repeat選項標簽下才有可能

<select ng-model="fadingSelected">
    <option ng-if="checkIfExist()" ng-bind="type.name" ng-value="type.id" ng-repeat="type in fadingTypes track by type.id"></option>
</select>

暫無
暫無

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

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