Javascript AngularJS对象搜索数组

Javascript AngularJS对象搜索数组,javascript,arrays,angularjs,filter,Javascript,Arrays,Angularjs,Filter,我的控制器中有一组对象,例如: $scope.fields = [ {fieldName:'houseNum',fieldLabel:'House Number',disabled:false}, {fieldName:'street',fieldLabel:'Street',disabled:false}, {fieldName:'city',fieldLabel:'City',disabled:true}, {fieldName:'state',fieldLa

我的控制器中有一组对象,例如:

$scope.fields = [
    {fieldName:'houseNum',fieldLabel:'House Number',disabled:false},
    {fieldName:'street',fieldLabel:'Street',disabled:false},
    {fieldName:'city',fieldLabel:'City',disabled:true},
    {fieldName:'state',fieldLabel:'State',disabled:true},
]
在HTML中,我希望能够得到一个fieldLabel,其中fieldName=='street'。AJS文档假定每个过滤器案例都应该在ng repeat的上下文中,但在我的案例中并非如此,因为我只是试图根据“fieldName”从“fields”数组中提取一个“fieldLabel”

例如:HTML

{{ fieldLabel in fields | filter : {fieldName:'street'} : true}}
我怎样才能使类似这样的操作生效?或者我是否需要创建自己的指令并将$scope.fields传递给该指令并手动循环?

您可以执行以下操作:

{{ (fields | filter : {fieldName:"street"} : true)[0].fieldLabel}}
(fields | filter:{fieldName:“street”}:true)
返回一个过滤项数组获取第一个
[0]
并访问该对象的
字段标签
属性

angular.module('app',[]).controller('ctrl',function($scope){
$scope.fields=[{
fieldName:'houseNum',
fieldLabel:“门牌号”,
禁用:false
}, {
字段名:'街道',
fieldLabel:“Street”,
禁用:false
}, {
字段名:'城市',
fieldLabel:“城市”,
残疾人士:对
}, {
字段名:“状态”,
字段标签:“状态”,
残疾人士:对
}, ]
})

{(字段|筛选器:{fieldName:“street”}:true)[0].fieldLabel}

谢谢-这很有道理。我不知道您可以只为筛选器表达式指定haystack。@user1583198您可以,但我建议不要在视图中使用筛选器,除非确实需要它。在您的情况下,为了显示过滤后的静态值,您最好在控制器中执行此操作。