从Angularjs中的过滤器自动填充输入框

时间:2014-02-21 10:26:19

标签: javascript angularjs angularjs-directive

您好我有以下表格,其中我有两个输入框和一个显示结果的ng-repeat。基本上在我的控制器中它从db中获取数据并加载到nt-repeat中。

 <td>
     <div>
        <input type="text" ng-model="item.logo">

      </div> </td>

      <td>
         <div>
           <input type="text" ng-model="item.name" >

         </div>
      </td>


 <tr ng-repeat="aa in addlaborrates | filter:{name:item.name} ">
              <td>{{aa.name}}</td>
              <td>{{aa.lago}}</td>
             <td>{{aa.id}}</td>
  </tr>

当我输入item.name输入框时,过滤器会在ng-repeat中找到匹配的项目。 我想要做的是当我输入名称输入框,因为它过滤我希望徽标字段也自动填充相应的值。请让我知道如何实现这一目标。 谢谢

1 个答案:

答案 0 :(得分:1)

您可以在http://jsfiddle.net/V9bgn/1/

中创建一个过滤器
.filter('getLogo', function() {
  return function(array, value) {
    var ret = [];
    angular.forEach(array, function(item) {
        if (item.name.indexOf(value) > -1) {
            ret.push(item.logo);
        }
    });

    return ret[0] || '';
  };    
});

然后在控制器中使用它:

$scope.$watch('item.name', function(val) {
    $scope.item.logo = $filter('getLogo')($scope.addlaborrates,val);
});