当前位置: 首页 > 面试题库 >

aurelia视图中的过滤器阵列

常波鸿
2023-03-14
问题内容

我正在使用aurelia,并想在视图中而不是视图模型中过滤集合(数组)。

我正在尝试使用以下语法:

<div class="col-sm-7  col-md-7 col-lg-7 ${errors.filter(function(err){return err.Key==='car.Model';}).length >0? 'alert alert-danger' :''}">
            <span repeat.for="error of errors">
                <span if.bind="error.Key==='car.Model'">
                    ${error.Message}
                </span>
            </span>
</div>

而且我在浏览器控制台中遇到以下错误:

Error: Parser Error: Missing expected ) at column 28 in [errors.filter(function(err){return err.Key==='car.Model';]

在angularJS中,这是可能的,如下所示:

 <div class="small-7  medium-7 large-7 columns end">
        <span class="error" ng-repeat="error in errors  | filter:{ Key: 'car.Model'}">
            <span class="error-message">
                {{error.Message}}
            </span>
        </span>
    </div>

奥雷利亚是否也可能有类似的事情?

我也很想知道如何repeat.for在aurelia中过滤集合/数组(类似于ng- repeat)。我试图以类似的方式使用过滤器功能,但是它也无法正常工作,并且出现了类似的错误。


问题答案:

有点尴尬。但是经过一番研究(我应该事先做过:P),我得到了答案。

可以使用ValueConverter完成,如下所示:http ://jdanyow.github.io/aurelia-converters-sample/ 。

而且我认为这很酷。

现在我的代码如下:

<div class="col-sm-7  col-md-7 col-lg-7 alert alert-danger" if.bind="errors | hasPropertyValue:'Key':'car.Model'">
    <span repeat.for="error of errors | filterOnProperty:'Key':'car.Model'">
        <span>
           ${error.Message}
        </span>
    </span>
</div>

我在TypeScript(valueconverters.ts)中定义了几个valueconverters :

export class FilterOnPropertyValueConverter {
toView(array: {}[], property: string, exp: string) {

    if (array === undefined || array === null || property === undefined || exp === undefined) {
        return array;
    }
    return array.filter((item) => item[property].toLowerCase().indexOf(exp.toLowerCase()) > -1);
}
}

export class HasPropertyValueValueConverter {
toView(array: {}[], property: string, exp: string) {

    if (array === undefined || array === null || property === undefined || exp === undefined) {
        return false;
    }
    return array.filter((item) => item[property].toLowerCase().indexOf(exp.toLowerCase()) > -1).length > 0;
}
}

最后,我认为这些是导入的: <import from="yourPath/valueconverters"></import>



 类似资料:
  • 我正试图在我的RecyclerView中实现搜索过滤器,就像在这篇文章中一样 我已经对它进行了调试,它确实按照预期过滤了项目,但列表在应用程序中似乎没有改变。一、 E:我过滤一个名字,有7个结果,在屏幕上是原始列表。 我的 onCreateMenu活动选项是: 我的适配器如下所示: 我忘了什么? 提前致谢!

  • 视图过滤 可以对视图的渲染输出进行过滤 <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function index() { // 使用视图输出过滤 return $this->filter(fu

  • 我想获得值召集器的结果,它在我的视图中过滤数组,以便显示找到的结果数。 我既不想将此逻辑移动到我的控制器(以保持其干净),也不想添加像从值控制器返回一些数据这样的拐杖。 因此,基本上我想要一些类似于角度报价的东西:如图所示:或者这里: 不幸的是,在奥雷利亚: 实际上是指

  • 我正在尝试创建一个应用程序,可以在其中为录制的视频添加过滤器。基本上,我想复制Instagram视频或Viddy中存在的功能。 我做过研究,但我不能把它全部拼凑起来。我研究过使用GLSurfaceView播放录制的视频,我知道我可以使用NDK进行像素处理,并将其发送回SurfaceView或以某种方式保存。问题是,我不知道如何发送像素数据,因为似乎没有访问它的功能。这个想法来自相机功能“onPre

  • 我正试图在我的RecyclerView中实现搜索过滤器,就像在这篇文章中一样 我现在面临的主要问题是setOnQueryTextListener,在我的活动中:“在QueryTextListenerAdapter上找不到符号类”。这可能是我确实需要创造的东西,也可能是我没有在我的活动中实现的东西。它只是MainActivity扩展了AppCompatActivity。 我的 onCreateMen

  • 我使用SearchView过滤我的应用程序的RecyclerView,就像这篇文章中描述的一样: 如何使用SearchView筛选RecyclerView 一开始一切看起来都很好,我可以根据需要过滤RecyclerView,但是经过一些尝试,出现了两个问题: 如果我在SearchView中输入文本太快,应用程序会崩溃,并出现以下日志: E/AndroidRuntime: FATAL EXCEPTI