2014-02-21 105 views
0

嗨我有以下形式,其中有兩個輸入框和一個顯示結果的ng-repeat。基本上在我的控制器中,它從db中獲取數據,並在nt-repeat中加載。自動填充Angularjs中的過濾器的輸入框

<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輸入框時,filter會在ng-repeat中找到匹配的項目。 我想要做的是當我輸入名稱輸入框,因爲它過濾器我想徽標字段也自動填充相應的值。請讓我知道如何做到這一點。 感謝

+1

你已經寫了 '標誌' 錯誤:​​{{} aa.lago },這是你的意思嗎?或者你也想過濾徽標:http://jsfiddle.net/V9bgn/ – QuarK

+0

@QuarK所以就像在你的例子中,如果我在第一個框中鍵入東西,我想要在第一個框中輸入時填充相應的第二個框 –

回答

2

您可以創建一個過濾器像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); 
}); 
+0

解決好了。謝謝 –