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您可以,但我建议不要在视图中使用筛选器,除非确实需要它。在您的情况下,为了显示过滤后的静态值,您最好在控制器中执行此操作。