首页 文章

AngularJs - 按键在数组中查找对象,并在View中显示其值

提问于
浏览
0

说我有一个对象数组:

$scope.objArr = [{key:1,value:'value1'},{key:2,value:'value2'},{key:3,value:'value3'}];

并且应该映射到 key 的变量 . 例如:

$scope.a = 3;

在Controller中我想要在View中显示 value . 上面的例子应该给我"value3."

没有创建另一个功能,我做的事情如下:

<span ng-repeat="obj in objArr | filter:{key:a}:true">{{obj.value}}</span>

它有效,但使用 ng-repeat 感觉不对 . 有没有更好的方法(没有创建另一个功能)?

EDIT:

这是我正在使用的完整代码:

<body ng-app="myApp">
    <div ng-controller="MyController">
        <span ng-repeat="obj in objArr | filter:{key:a.test}:true">{{obj.value}}</span>
        <input ng-model="a.test"/>
    </div>
  </body>

控制器:

var myApp = angular.module('myApp',[]);

myApp.controller('MyController',function($scope){
  $scope.objArr = [{key:1,value:'value1'},{key:2,value:'value2'},{key:3,value:'value3'}];
  $scope.a = {test:2}
});

它最初显示“value2”,但在更改输入字段的值后没有显示任何内容 . 这是为什么?

1 回答

  • 0

    你可以试试这个

    您可以在控制器内创建一个方法

    var myApp = angular.module('myApp',[]);
    
     myApp.controller('MyController',function($scope){
        $scope.objArr = [{key:1,value:'value1'},{key:2,value:'value2'},{key:3,value:'value3'}];
        $scope.callSearch = function(num) {
        var abc = filterFilter($scope.objArr, {id: num});
        $scope.item= abc[0].value;
      };
    });
    

    在您的视图中,您可以执行此操作

    <div ng-controller="MainController">
      <input ng-model="search"/>
      <button ng-click="callSearch(search);">Search</button>
     {{item}}  
    </div>
    

相关问题