javascript - 如何在 Ember.js 中模拟 Angular 过滤器?

标签 javascript angularjs ember.js

Angular 过滤器背后的逻辑是什么?我们通过以下方式使用 Angular 过滤器

var users = [
  {
    name: "lokesh",
    age: 25
  },
 {
    name: "john",
    age: 20
  }
]

<input type="text" ng-model="search">
<div ng-repeat="user in users | filter:search">
   {{user.name}} {{user.age}}
</div>

Ember.js 中是否有这样的过滤器,或者如何在纯 JavaScript 中使用这样的过滤器。过滤器应该返回具有该用户输入的单词的对象。此外,该过滤器应该像一个独立的组件。它应该适用于对象中任意数量的属性

var search = "lokesh";
users.filter(function (user) {
  return user.name == search || user.age == search;
});

上述过滤器适用于 2 个属性名称和年龄。我想要一个可以处理任意数量属性的过滤器。更多的是,过滤器也应该匹配部分字符串,这与上面检查 == 的示例不同。

最佳答案

基本上使用Object.keys:

users.filter(d => Object.keys(d).some(key => d[key] == search))

现在可以轻松创建 ember.js 帮助器,或者只是一个实用函数或计算属性模板。要使实时更新正常工作有点挑战,但并非不可能。

关于javascript - 如何在 Ember.js 中模拟 Angular 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39069668/

相关文章:

javascript - 如何在 setInterval() 回调中获取光标位置

javascript - 在 ASP.NET MVC 中动态加载脚本文件

javascript - 字符串比较返回 false。 jQuery Mobile 的奇怪 JavaScript 行为

javascript - 使用加密模块将 PHP AES 加密到 NodeJS

javascript - Angular 指令无法访问 DOM 树中的 Controller

javascript - 使用 Ember.Select 设置选择默认值

ember.js - Emberjs : How to get a single object from find() (findAll)

ember.js - Ember Data 1.0.0 : this. modelFor ('author' ).save 失败 - 如何在 Controller 中保存新创建的记录?

javascript - 在浏览器中更改 URL 参数时进行 Angular 页面刷新

javascript - 如何创建自定义指令来监听输入更改