2017-02-03 7 views
0

は、ここに私のコードです:角度Javascriptのfindメソッド

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

//myApp.directive('myDirective', function() {}); 
//myApp.factory('myService', function() {}); 

myApp.controller('MyCtrl', ['$scope', MyCtrl]); 

function MyCtrl($scope) { 
    $scope.name = 'Superhero'; 

    $scope.names = [ 
     { 
      "name": "AAAAAA", 
      "down": "False" 
     }, 
     { 
      "name": "BBBBBB", 
      "down": "45%" 
     }, 
     { 
      "name": "CCCCC", 
      "down": "12%" 
     } 
     ]; 

    $scope.datas = [ 
     { 
      "data": "AAAAAA/45%" 
     } 
     ]; 

    $scope.getTheRightData = data => $scope.datas.map(d=>d.data.split('/')[0]).find(d=>d===data); 
} 

HTML

<div ng-controller="MyCtrl"> 
    <table> 
     <tbody> 
      <tr ng-repeat="name in names"> 
      <td>{{name.name}}</td> 
      <td>{{name.down}}</td> 
      <td ng-bind="getTheRightData(name.name)"></td> 
      </tr> 
     </tbody> 
    </table> 

私は何:name.nameが同じであれば$scope.datasから一つの要素は$scope.namesの要素にマッチしますが、それだけを示し。私はname.namename.downが同じであれば、このようなものが必要です。<td ng-bind="getTheRightData(name.name,name.down)"></td>を、コントローラで

$scope.getTheRightData = data => $scope.datas.map(d=>d.data.split('/')[0][1]).find(d=>d===data); 
} 

が、それはいけない仕事。 お返事ありがとうございました!

+0

あなたは負荷に表示する最初の要素だけを期待しているか、それが一致していたときに第三 'td'のみが移入されることを期待していますか? –

答えて

0

サンプルアンサーを作成しました。以下のコードを確認してください。二つの配列を考えると

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

 
//myApp.directive('myDirective', function() {}); 
 
//myApp.factory('myService', function() {}); 
 

 
myApp.controller('MyCtrl', ['$scope', MyCtrl]); 
 

 
function MyCtrl($scope) { 
 
    $scope.name = 'Superhero'; 
 

 
    $scope.names = [{ 
 
    "name": "AAAAAA", 
 
    "down": "False" 
 
    }, { 
 
    "name": "BBBBBB", 
 
    "down": "45%" 
 
    }, { 
 
    "name": "CCCCC", 
 
    "down": "12%" 
 
    }, { 
 
    "name": "AAAAAA", 
 
    "down": "45%" 
 
    }]; 
 

 
    $scope.datas = [{ 
 
    "data": "AAAAAA/45%" 
 
    }, { 
 
    "data": "CCCCC/12%" 
 
    }]; 
 

 
    $scope.getTheRightData = data => $scope.datas.map(param => { 
 
    return { 
 
     name: param.data.split('/')[0], 
 
     down: param.data.split('/')[1] 
 
    } 
 
    }).find(param => param.name == data.name && param.down == data.down); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<html ng-app="myApp"> 
 

 
<head> 
 
    <title></title> 
 
    <meta charset="utf-8" /> 
 
</head> 
 

 
<body> 
 
    <div ng-controller="MyCtrl"> 
 
    <table> 
 
     <tbody> 
 
     <tr ng-repeat="name in names"> 
 
      <td>{{name.name}}</td> 
 
      <td>{{name.down}}</td> 
 
      <td>{{getTheRightData(name)}}</td> 
 
     </tr> 
 
     </tbody> 
 
    </table> 
 
    </div> 
 
</body> 
 

 
</html>

関連する問題