我有一个 $scope.myData
对象,该对象在消息对象中具有空值。
$scope.myData = [
{
"ID" : "001",
"deviceName":"sanjit",
"Message" : "test1"
},{
"ID" : "002",
"deviceName":"gan",
"Message" : "test2"
},{
"ID" : "003",
"deviceName":"dine",
"Message" : ""
},{
"ID" : "004",
"deviceName":"sam",
"Message" : "test4"
},{
"ID" : "005",
"deviceName":"dhar",
"Message" : " "
},{
"ID" : "006",
"deviceName":"gau",
"Message" : "test6"
},{
"ID" : "007",
"deviceName":"venk",
"Message" : "test7"
}
]
我在 tr
标记中执行 dir-paginate
,如下所示
<br/><b> dir-paginate="dev in myData | filter:{deviceName:q,message:loc}></b>
<br/>
并使用两个输入进行过滤
<br/>
Device Name: <b>ng-model="q"</b>
<br/>
Message: <b>ng-model="loc"</b>
当我在输入字段中使用 ng-model="loc"
搜索消息时,我将得到正确的结果列表 (001,002,004,006,007)
当我清除“loc”字段时,我不会得到完整的结果,而只会得到上述 5 个结果 (001,002,004,006,007),即清除 过滤字段“loc”,我没有得到消息中具有空值的对象。
请告诉我出了什么问题?
最佳答案
过滤器区分大小写,因此您需要将 message
更改为 Message
var app = angular.module('myapp', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.myData = [
{
"ID" : "001",
"deviceName":"sanjit",
"Message" : "test1"
},{
"ID" : "002",
"deviceName":"gan",
"Message" : "test2"
},{
"ID" : "003",
"deviceName":"dine",
"Message" : ""
},{
"ID" : "004",
"deviceName":"sam",
"Message" : "test4"
},{
"ID" : "005",
"deviceName":"dhar",
"Message" : " "
},{
"ID" : "006",
"deviceName":"gau",
"Message" : "test6"
},{
"ID" : "007",
"deviceName":"venk",
"Message" : "test7"
}
]
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<html ng-app="myapp">
<body ng-controller="MainCtrl">
Device Name: <input ng-model="q">
Message: <input ng-model="loc">
<ul>
<li ng-repeat="dev in myData | filter:{deviceName:q,Message:loc}">
{{dev}}
</li>
</ul>
</body>
</html>
关于javascript - AngularJS - 过滤器不列出空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32229042/