2017-11-16 9 views
0

ローカルストレージアイテムからデータを読み込むいくつかの表形式データのフィルタドロップダウンがあります。selectタグは下に表示され、その下に選択項目を追加するコードがありますタグとフィルタのモデルです。AngularJS - ng-selectが期待通りに機能しない

問題は、ページを更新するときにフィルタリングされたデータが正しい間に、選択された項目はローカルストレージ値がtrueの場合にのみ正しい値を示します。

ローカルストレージアイテムが選択されている値に関係なく、[選択済み]は常に[検索から除外]オプションに追加されます。

私の人生のために、なぜ、助けアドバイスをいただきありがとうございます。

<select class="form-control form-control-sm" ng-model="filterSearch" ng-change="setFilterS()" id="theFilterS" >        
    <option ng-selected="{{option.value == filterSearch}}" ng-repeat="option in filterSearchOptions" value="{{option.value}}" >{{option.DisplayName}}</option> 
</select> 

$scope.filterSearch = localStorage.getItem("FilterSearch"); 

$scope.filterSearchOptions = [{ 
     value: '', 
     DisplayName: 'All', 
    }, { 
     value: 'false', 
     DisplayName: 'Included in Search', 
    }, { 
     value: 'true', 
     DisplayName: 'Excluded from Search', 
    }]; 

答えて

1

あなたはこのコードを試してみましたし、各オプションの値が追加され

angular.module('app',[]).controller('testCtrl',function($scope){ 
 
$scope.filterSearch = 'true'; 
 

 
$scope.filterSearchOptions = [{ 
 
     value: '', 
 
     DisplayName: 'All', 
 
    }, { 
 
     value: 'false', 
 
     DisplayName: 'Included in Search', 
 
    }, { 
 
     value: 'true', 
 
     DisplayName: 'Excluded from Search', 
 
    }]; 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="app" ng-controller="testCtrl"> 
 
<select 
 
    class="form-control form-control-sm" 
 
    ng-model="filterSearch" 
 
    ng-change="setFilterS()" 
 
    id="theFilterS" 
 
    ng-options="option.value as option.DisplayName for option in filterSearchOptions"> 
 
</select> 
 

 
{{filterSearch}} 
 

 
</div>

+0

ngのリピートその後、IMOは、単純なアプローチを与えるNG-オプションディレクティブで試してみてください文字列で:例えば。 'に含まれ、これが追加されました - ' ' – djcamo

+1

ブール値を取得するためにstr.splitが使用され、 – djcamo

関連する問題