5

私はAngularJSの初心者です。ng-grid のデモを調べて質問があります。

index.html

<!DOCTYPE html>
<html ng-app="myApp">

<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<link rel="stylesheet" type="text/css" href="http://angular-ui.github.com/ng-grid/css/ng-grid.css" />
<link rel="stylesheet" type="text/css" href="style.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"></script>
<script type="text/javascript" src="http://angular-ui.github.com/ng-grid/lib/ng-grid.debug.js"></script>
<script src="app.js"></script>
</head>

<body ng-controller="MyCtrl">
    <div class="gridStyle" ng-grid="gridOptions"></div>
    <div class="selectedItems">{{mySelections}}</div><br><br>

</body>

</html>

app.js

var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope) {
$scope.mySelections = [];
$scope.myData = [{name: "Moroni", id: 1},
                 {name: "Tiancum", id: 2},
                 {name: "Jacob", id: 3},
                 {name: "Nephi", id: 4},
                 {name: "Akon", id: 5},
                 {name: "Enos", id: 6}];
$scope.gridOptions = { 
data: 'myData',
selectedItems: $scope.mySelections,
multiSelect: true 
};

//$scope.mySelections_id = $scope.mySelections.length;

});

最初の行を選択すると、selectedItems の div に [{"name":"Moroni","id":1}] が表示されます。結果はOKです。選択した行からセル [id] の値を取得したいだけの場合、コードを変更するにはどうすればよいですか?

こちらが プランカー

4

3 に答える 3

5

コールバックを使用してafterSelectionChange、選択範囲から別の配列に ID を抽出します。

$scope.gridOptions = { 
    data: 'myData',
    selectedItems: $scope.mySelections,
    multiSelect: true,
    afterSelectionChange: function () {
      $scope.selectedIDs = [];
      angular.forEach($scope.mySelections, function ( item ) {
        $scope.selectedIDs.push( item.id )
      });
    }
  };

これで、テンプレートから参照できるよう{{selectedIDs}}になり、選択したすべての ID が含まれるようになりました。または最初だけ:{{selectedIDs[0]}}

ここで実際の例を参照してください: http://plnkr.co/edit/xVwVWX

于 2013-06-04T08:26:08.523 に答える
0

実際には、ユーザーがテーブルでセルを選択したときに、セルの値を取得して変更したいと考えています。

上記の回答は、固定列のフィールドを使用しています..のように

 $scope.selectedIDs.push( item.id ) // id is column filed

これらの答えの代わりに、まさに私が達成したい別の方法を見つけました。

コード例: http://plnkr.co/edit/wfiMhlJ7by4eUHojjKT4?p=preview

editableCellTemplatecolumnDefsこれは、この問題を解決するために使用されるオプションです。

アンギュラーはアズウォメ!!

于 2015-06-17T08:38:00.000 に答える