vue 2.0 中的自定义过滤器 returns 无
Custom filter in vue 2.0 returns nothing
我正在尝试构建一个自定义过滤器,returns 匹配输入的项目。
它适用于 ['Apple', 'Banana', 'Cupple']
等简单数组。
但不包含对象数组(我正在尝试使用它来过滤包含用户信息的数组)
filterBy: function (arr, value) {
return arr.filter(function(item) {
item = item.toString();
return item.indexOf(value) > -1;
})
},
在我的模板中
<input v-model="userInput" />
<h2> Customer: </h2>
<ul v-for="customer in filterBy(customers, userInput)">
<li>{{customer.name}}</li>
</ul>
编辑:这就是数据的样子。
"data":[{"id":"9","name":"missy","phone":"21324234532"},
{"id":"3","name":"Mahama","phone":"345604542"}]
如何获得与给定输入匹配的客户?
假设您的对象数组如下所示:
[
{"id":"9","name":"missy","phone":"21324234532"},
{"id":"3","name":"Mahama","phone":"345604542"},
{"id":"2","name":"Bernard","phone":"241242542"}
]
正如评论中指出的那样:someObject.toString()
通常会 return [object Object]
,所以它对过滤任何东西都没有多大用处。您可能期望得到一个 JSON 输出,您可以使用 JSON.stringify(someObject)
,但更好和准确的方法是访问该特定密钥。
您可以修改函数如下:
filterBy: function (arr, value) {
return arr.filter(function(item) {
return item.name.indexOf(value) > -1;
})
},
我正在尝试构建一个自定义过滤器,returns 匹配输入的项目。
它适用于 ['Apple', 'Banana', 'Cupple']
等简单数组。
但不包含对象数组(我正在尝试使用它来过滤包含用户信息的数组)
filterBy: function (arr, value) {
return arr.filter(function(item) {
item = item.toString();
return item.indexOf(value) > -1;
})
},
在我的模板中
<input v-model="userInput" />
<h2> Customer: </h2>
<ul v-for="customer in filterBy(customers, userInput)">
<li>{{customer.name}}</li>
</ul>
编辑:这就是数据的样子。
"data":[{"id":"9","name":"missy","phone":"21324234532"},
{"id":"3","name":"Mahama","phone":"345604542"}]
如何获得与给定输入匹配的客户?
假设您的对象数组如下所示:
[
{"id":"9","name":"missy","phone":"21324234532"},
{"id":"3","name":"Mahama","phone":"345604542"},
{"id":"2","name":"Bernard","phone":"241242542"}
]
正如评论中指出的那样:someObject.toString()
通常会 return [object Object]
,所以它对过滤任何东西都没有多大用处。您可能期望得到一个 JSON 输出,您可以使用 JSON.stringify(someObject)
,但更好和准确的方法是访问该特定密钥。
您可以修改函数如下:
filterBy: function (arr, value) {
return arr.filter(function(item) {
return item.name.indexOf(value) > -1;
})
},