我还是Angular/JS的新手......我通过过滤管道显示了一堆数据,现在我希望能够切换数据的排序方式:升序或降序。我有一个完美的“orderBy”管道,但我现在必须对方向进行硬编码,并且我希望它是动态的。我想通过两个单选按钮实现这一点,但是我无法抓取输入值并将其插入到我的* ngFor指令中。抓取输入值并将其插入* ngFor指令?
<input type="radio" value="+"> Ascending<br>
<input type="radio" value="-"> Descending<br>
我需要抓住“+”或“ - ”并在“recordStartDate”之前插入它。
<li (click)="showArtist(item);"
*ngFor="let item of artists | search: field1Filter | orderBy:
['recordStartDate']">
</li>
[ '- recordStartDate ']结果降序排列,并[' + recordStartDate'](或无符号在所有的)产生上升。
达到此目的的最佳方法是什么?
谢谢!
编辑:
我在这里使用这条管道:https://stackoverflow.com/a/35635370/8201772这里有它的一个演示:http://fuelinteractive.github.io/fuel-ui/#/pipe/orderby。请注意,在演示中,有些选项可以通过“+”和“ - ”控制数据是按升序还是降序排序。我怎样才能复制这些选择功能?我会对原始答案发表评论,但我需要50+声望才能这样做。谢谢!
编辑二:
好了,我已经更新了两个单选按钮,如下图所示:
<input type="radio" name="orderbydescending" [(ngModel)]="orderbydescending" value="['+recordStartDate']">Ascending<br>
<input type="radio" name="orderbydescending" [(ngModel)]="orderbydescending" value="['-recordStartDate']">Descending
并使用我的观点如下:
*ngFor="let item of artists | search: field1Filter | orderBy : orderbydescending"
然后我得到以下错误:http://imgur.com/a/KOxv5。
如果我删除“['”和“']”单选按钮的值,那么管道停止正常工作(并且我仍然得到相同的错误)。
任何想法?再一次,硬编码这完美的作品。谢谢!
谢谢,比尔温!这通常是完美的,但是,我似乎无法使用我正在使用的特定管道工作。我在这里使用这个管道:https://stackoverflow.com/questions/32882013/angular-2-sort-and-filter/35635370#35635370 - 这里有一个演示:http://fuelinteractive.github。 IO /燃料UI /#/管/的OrderBy。在演示中,查看选择选项以及用户如何通过控制“+”或“ - ”在升序和降序之间切换。任何想法如何工作? – Boosman
当你浏览代码时,你看到了什么错误? – birwin
看看我的**编辑两**为我的更新和产生的错误。谢谢!也许我正在犯一个非常简单/愚蠢的错误? – Boosman