【问题标题】:Auto populating input boxes from filter in Angularjs从Angularjs中的过滤器自动填充输入框
【发布时间】:2014-02-21 10:26:18
【问题描述】:

您好,我有以下表格,其中有两个输入框和一个显示结果的 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 中找到匹配的项目。 我想要做的是,当我在名称输入框中输入过滤器时,我希望徽标字段也自动填充相应的值。请让我知道如何实现这一目标。 谢谢

【问题讨论】:

  • 你写错了'logo':{{aa.lago}},你是这个意思吗?或者您也想按徽标过滤:jsfiddle.net/V9bgn
  • @QuarK 所以就像在你的例子中,如果我在第一个框中输入一些东西,我会尝试在第一个输入时填充相应的第二个框

标签: javascript angularjs angularjs-directive


【解决方案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);
});

【讨论】:

    猜你喜欢
    • 2021-11-04
    • 1970-01-01
    • 2019-01-30
    • 2016-07-26
    • 2015-07-18
    • 2020-03-26
    • 2012-07-28
    • 2017-09-08
    • 1970-01-01
    相关资源
    最近更新 更多