如果是Name或Value,我想渲染文本。如果它是createdate或enventId,我不想循环。我尝试使用Filter和ng-if条件。它不起作用。
HTML CODE
<tr ng-repeat="event in events | filter:Name ">
<td >{{event.Name}} : </td>
<td>{{ event.Value }}</td>
</tr>
JS CODE
Events: [
{
CreatedTime: "/Date(1420757322810-0800)/",
EventId: 13,
Name: "AdGroupId",
Value: "2367898"
},
{
CreatedTime: "/Date(1420757322810-0800)/",
EventId: 13,
Name: "AdGroupId",
Value: "2367898"
}
]
我希望结果应该是
AdGroupId:2367898
答案 0 :(得分:0)
假设您正在寻找一个过滤器来删除其中没有名称和值属性的事件。
以下是您的示例:
控制器:
$scope.filterNameValue = function(e){
if(angular.isDefined(e.Name) && angular.isDefined(e.Value))
return e;
};
HTML
<table>
<tbody>
<tr ng-repeat="event in events | filter: filterNameValue">
<td >{{event.Name}} : </td>
<td>{{ event.Value }}</td>
</tr>
</tbody>
</table>
答案 1 :(得分:0)
假设您要问的是如何排除既没有名称也没有值的项目,那么您需要一个自定义函数。这应该足够了:
$scope.filterEvents = function(e){
return e.Name || e.Value;
};
然后:
<tr ng-repeat="event in events | filter:filterEvents">
<td >{{event.Name}} : </td>
<td>{{ event.Value }}</td>
</tr>
Example
或者,如果您要根据指定的名称和/或值过滤值,则可以这样做:
$scope.filterEvents = function (e) {
return ($scope.Name || $scope.Value) &&
(!$scope.Name || $scope.Name === e.Name) &&
(!$scope.Value || $scope.Value === e.Value);
};
(HTML与上述相同)