2017-07-07 7 views
0

選択したモデルには、オプションオブジェクトプロパティのidプロパティのみが含まれています。選択したモデルがオブジェクト全体を含むことは可能ですか?選択オプションオブジェクト全体をモデルとして設定するにはどうすればよいですか?

HTML

<div ng-dropdown-multiselect="" options="exampleData" selected-model="exampleModel"></div> 

はJavaScript

$scope.exampleModel = []; 
$scope.exampleData = [ 
    {id: 1, code: 'CA': label: "California"}, 
    {id: 2, code: 'MN' label: "Minnesota"}, 
    {id: 3, code: 'NY', label: "New York"} ]; 

私は最初のオプションを選択するのであれば、この場合には、モデルは次のようになります:

$scope.exampleModel = [{"id":"CA"}] 

私はモデルが必要次のようにオプションオブジェクト全体を含める:

$scope.exampleModel = [{id: 1, code: 'CA': label: "California"}] 

答えて

1

onSelectionChangedコールバックイベントで更新できます。

var app = angular.module('app', ['angularjs-dropdown-multiselect']); 
 

 
app.controller('MainCtrl', function($scope) { 
 
    $scope.exampleModel = []; 
 
    $scope.exampleData = [{ 
 
    id: 1, 
 
    code: 'CA', 
 
    label: "California" 
 
    }, { 
 
    id: 2, 
 
    code: 'MN', 
 
    label: "Minnesota" 
 
    }, { 
 
    id: 3, 
 
    code: 'NY', 
 
    label: "New York" 
 
    }]; 
 
    $scope.exampleEvents = { 
 
    onSelectionChanged: function() { 
 

 
     $scope.exampleModel.forEach(function(selectedData) { 
 
     var data = $scope.exampleData.find(function(item) { 
 
      return item.id == selectedData.id; 
 
     }); 
 
     if (data != null) { 
 
      angular.copy(data, selectedData); 
 
     } 
 
     }); 
 
     console.log("Change:", $scope.exampleModel); 
 
    } 
 
    } 
 
});
<!DOCTYPE html> 
 
<html ng-app="app"> 
 

 
<head> 
 
    <link data-require="[email protected]*" data-semver="3.3.2" rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" /> 
 
    <script data-require="[email protected]" data-semver="2.1.3" src="http://code.jquery.com/jquery-2.1.3.min.js"></script> 
 
    <script data-require="[email protected]*" data-semver="3.3.2" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> 
 
    <script data-require="[email protected]" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.11/angular.min.js" data-semver="1.5.11"></script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angularjs-dropdown-multiselect/1.11.8/angularjs-dropdown-multiselect.min.js"></script> 
 
</head> 
 

 
<body ng-controller="MainCtrl"> 
 
    <div ng-dropdown-multiselect="" options="exampleData" selected-model="exampleModel" events="exampleEvents"></div> 
 
</body> 
 

 
</html>

関連する問題