2017-06-22 9 views
1

ボタンをクリックすると、各オブジェクトの各値を取得する必要があります。 たとえば、最初の 'div.parent'の中の 'Click Me'ボタンをクリックすると、 '$ scope.color = [' Black '、' White ']が表示されます。オブジェクトの配列内にある各オブジェクトの各値を取得する

どうすれば入手できますか?

は、ここに私のコードです:

angular.module('myApp', []).controller('myCtrl', ['$scope', function($scope){ 
 
    $scope.myData = [ 
 
\t { 
 
\t 'car': 'Ford', 
 
\t 'color': [{'primary':'Black'},{'secondary':'White'}], 
 
\t 'number': '1, 2, 3', 
 
\t 'model': 'Figo' \t \t \t 
 
\t }, { 
 
\t 'car': 'Ford', 
 
\t 'color': [{'primary':'Red'},{'secondary':'Black'}], 
 
\t 'number': '4,5', 
 
\t 'model': 'Endeavour' \t \t \t 
 
\t },{ 
 
\t 'car': 'Jaguar', 
 
\t 'color': [{'primary':'White'},{'secondary':'Red'}], 
 
\t 'number': '6', 
 
\t 'model': 'F-Type' \t \t \t 
 
\t }, 
 
    ]; 
 
    
 
    $scope.getData = function(){ 
 
\t $scope.color = angular.forEach(this.car.color, function(value, key){ 
 
\t \t return $(this); 
 
\t }); 
 
\t console.log($scope.color); 
 
    }; 
 
}]);
.parent { 
 
    border: 1px solid lightgrey; 
 
    border-radius: 5px; 
 
    background-color: skyblue; 
 
    height: 100px; 
 
    margin-top: 5px; 
 
    padding: 10px; \t \t \t 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
    <button id="createData">Create Data</button> 
 
    <div class="container"> 
 
\t <div ng-repeat="car in myData" class="parent"> 
 
\t <div> 
 
\t \t <label>Car:</label> 
 
\t \t <span>{{car.car}}</span> 
 
\t </div> 
 
\t <br /> 
 
\t <div> 
 
\t  <label>Model:</label> 
 
\t \t <span>{{car.model}}</span> 
 
\t </div> 
 
\t <br /> 
 
\t <button ng-click="getData(obj)">Click Me!</button> 
 
\t </div> 
 
    </div> 
 
</div>

答えて

2

色配列内の正しい値をプッシュするだけです。

angular.module('myApp', []).controller('myCtrl', ['$scope', function($scope){ 
 
    $scope.myData = [ 
 
\t { 
 
\t 'car': 'Ford', 
 
\t 'color': [{'primary':'Black'},{'secondary':'White'}], 
 
\t 'number': '1, 2, 3', 
 
\t 'model': 'Figo' \t \t \t 
 
\t }, { 
 
\t 'car': 'Ford', 
 
\t 'color': [{'primary':'Red'},{'secondary':'Black'}], 
 
\t 'number': '4,5', 
 
\t 'model': 'Endeavour' \t \t \t 
 
\t },{ 
 
\t 'car': 'Jaguar', 
 
\t 'color': [{'primary':'White'},{'secondary':'Red'}], 
 
\t 'number': '6', 
 
\t 'model': 'F-Type' \t \t \t 
 
\t }, 
 
    ]; 
 
    
 
    $scope.getData = function(obj){ 
 
    $scope.color =[]; 
 
     $scope.color.push(obj[0].primary); 
 
     $scope.color.push(obj[1].secondary); 
 
\t console.log($scope.color); 
 
    }; 
 
}]);
.parent { 
 
    border: 1px solid lightgrey; 
 
    border-radius: 5px; 
 
    background-color: skyblue; 
 
    height: 100px; 
 
    margin-top: 5px; 
 
    padding: 10px; \t \t \t 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
    <button id="createData">Create Data</button> 
 
    <div class="container"> 
 
\t <div ng-repeat="car in myData" class="parent"> 
 
\t <div> 
 
\t \t <label>Car:</label> 
 
\t \t <span>{{car.car}}</span> 
 
\t </div> 
 
\t <br /> 
 
\t <div> 
 
\t  <label>Model:</label> 
 
\t \t <span>{{car.model}}</span> 
 
\t </div> 
 
\t <br /> 
 
\t <button ng-click="getData(car.color)">Click Me!</button> 
 
\t </div> 
 
    </div> 
 
</div>

+0

私は、オブジェクトの明確な数がありませんよう、オブジェクトの私の配列を反復処理によってそれを行う必要があります。 – Sunny

+0

ng-repeatでは、1つのインスタンスだけが機能パラメータとして渡され、対応する車インスタンスの色を格納するために使用できます。 – Vivz

+0

各広告申込情報をクリックし、その広告申込情報に対応する色を保存しています。要件は何ですか? – Vivz

0

angular.module('myApp', []).controller('myCtrl', ['$scope', function($scope){ 
 
    $scope.myData = [ 
 
\t { 
 
\t 'car': 'Ford', 
 
\t 'color': [{'primary':'Black'},{'secondary':'White'}], 
 
\t 'number': '1, 2, 3', 
 
\t 'model': 'Figo' \t \t \t 
 
\t }, { 
 
\t 'car': 'Ford', 
 
\t 'color': [{'primary':'Red'},{'secondary':'Black'}], 
 
\t 'number': '4,5', 
 
\t 'model': 'Endeavour' \t \t \t 
 
\t },{ 
 
\t 'car': 'Jaguar', 
 
\t 'color': [{'primary':'White'},{'secondary':'Red'}], 
 
\t 'number': '6', 
 
\t 'model': 'F-Type' \t \t \t 
 
\t }, 
 
    ]; 
 
    
 
    $scope.getData = function(colorObj){ 
 
\t //$scope.color = angular.forEach(this.car.color, function(value, key){ 
 
\t // \t return $(this); 
 
\t //}); 
 
    
 
\t console.log("color Array : ",colorObj); 
 
    console.log("selected colors: ",colorObj[0].primary, ' ',colorObj[1].secondary); 
 
    }; 
 
}]);
.parent { 
 
    border: 1px solid lightgrey; 
 
    border-radius: 5px; 
 
    background-color: skyblue; 
 
    height: 100px; 
 
    margin-top: 5px; 
 
    padding: 10px; \t \t \t 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
    <button id="createData">Create Data</button> 
 
    <div class="container"> 
 
\t <div ng-repeat="car in myData" class="parent"> 
 
\t <div> 
 
\t \t <label>Car:</label> 
 
\t \t <span>{{car.car}}</span> 
 
\t </div> 
 
\t <br /> 
 
\t <div> 
 
\t  <label>Model:</label> 
 
\t \t <span>{{car.model}}</span> 
 
\t </div> 
 
\t <br /> 
 
\t <button ng-click="getData(car.color)">Click Me!</button> 
 
\t </div> 
 
    </div> 
 
</div>

あなたは色の配列を取得します。 colorObj[0].primaryを使用すると、色の値にアクセスできます。

関連する問題