Как использовать SelectionMode: ‘multiple’, displaySelectionCheckbox: истинные свойства в angularjs smart table

#angularjs #smart-table

#angularjs #интеллектуальная таблица

Вопрос:

http://lorenzofox3.github.io/smart-table-website/#/section-выбор

Как использовать selectionMode: 'multiple' , displaySelectionCheckbox: true свойства в смарт-таблице. Каковы эти требования?

Комментарии:

1. Я добавил эти свойства в свой блок globalconfig, но не повлиял на

2. Не могли бы вы опубликовать свой код?

Ответ №1:

Предположим, у нас есть следующая таблица в html. Вы должны создать следующую директиву (вы можете поместить ее в отдельный файл из контроллера):

 <table st-table="rowCollection" class="table">
    <thead>
    <tr>
        <th></th>
        <th st-sort="firstName">first name</th>
        <th st-sort="lastName">last name</th>
        <th st-sort="birthDate">birth date</th>
        <th st-sort="balance">balance</th>
        <th>email</th>
    </tr>
    </thead>
    <tbody>
    <tr ng-repeat="row in rowCollection">
        <td cs-select="row"></td>
        <td>{{row.firstName | uppercase}}</td>
        <td>{{row.lastName}}</td>
        <td>{{row.birthDate | date}}</td>
        <td>{{row.balance | currency}}</td>
        <td><a ng-href="mailto:{{row.email}}">email</a></td>
    </tr>
    </tbody>
</table>


   app.controller('customCtrl', ['$scope', function (scope) {
        scope.rowCollection = [
            {firstName: 'Laurent', lastName: 'Renard', birthDate: new Date('1987-05-21'), balance: 102, email: 'whatever@gmail.com'},
            {firstName: 'Blandine', lastName: 'Faivre', birthDate: new Date('1987-04-25'), balance: -2323.22, email: 'oufblandou@gmail.com'},
            {firstName: 'Francoise', lastName: 'Frere', birthDate: new Date('1955-08-27'), balance: 42343, email: 'raymondef@gmail.com'}
        ];
    }]);
    app.directive('csSelect', function () {
        return {
            require: '^stTable',
            template: '<input type="checkbox"/>',
            scope: {
                row: '=csSelect'
            },
            link: function (scope, element, attr, ctrl) {

                element.bind('change', function (evt) {
                    scope.$apply(function () {
                        ctrl.select(scope.row, 'multiple');
                    });
                });

                scope.$watch('row.isSelected', function (newValue, oldValue) {
                    if (newValue === true) {
                        element.parent().addClass('st-selected');
                    } else {
                        element.parent().removeClass('st-selected');
                    }
                });
            }
        };
    });