簡體   English   中英

AngularJs從ng-repeat過濾輸入到Javascript變量?

[英]AngularJs get filtered input from ng-repeat to a Javascript variable?

我目前正在使用AngularJs,並且正在使用多個選擇框過濾輸入數組。 在過濾后的結果上,我正在運行ng-repeat來顯示我現在過濾后的數組中的每個元素。 現在我的問題。 我想將過濾后的輸入數組另存為javascript變量,以便以后顯示或打印整個結果。 我實際上只希望將過濾后的輸入數組保存到javascript變量中,甚至更好,將每個ng-repeat的結果完全保存在一個變量中,但是在應用新的過濾器或再次使用過濾器后進行更新。 我被困在這里。 有沒有一種順利的方法來做到這一點。 還是您有一個更好的主意,什么可以在這里工作? 謝謝了 假設我們有一個用於語言和名稱的過濾器:

<select class="form-control"
              ng-options="l.language for l in languages"
              ng-model="languageModel"
              ></select>
<select class="form-control"
              ng-options="n.name for n in names"
              ng-model="nameModel"
              ></select>


<ul ng-repeat="sq in input| filter:languageModel| filter:nameModel>

<li>Language: {{sq['Language']}}</li>
<li>Name: {{sq['Name']}}</li>
</ul>

現在我想要類似的東西:

$ scope.var = ... //過濾后的結果。

您可以將數組直接存儲在ng-repeat

<ul ng-repeat="sq in (filteredInput = (input| filter:languageModel| filter:nameModel))>

現在您可以訪問$scope.filteredInput以獲取過濾后的數組

您可以直接從javascript調用過濾器:

$scope.filteredInput = $filter('languageModel')($scope.input);

其中languageModel是過濾器的名稱。 確保在控制器中注入$filter

順便說一句,在<ul>元素上使用ng-repeat很奇怪。 更合適的方法是將其放在<li>

<ul>
    <li ng-repeat="sq in input| filter:languageModel| filter:nameModel>
        <span>Language: {{sq['Language']}}</span>
        <span>Name: {{sq['Name']}}</span>
    <li>
</ul>

您可以在后面的代碼中編寫自己的過濾器功能,如下所示

$scope.filterlanguage=function(item){

//add your condition if satisfies return or null
if(condition)
{
return item;
}
return null;


}

暫無
暫無

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

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