我想在按钮单击上调用自定义指令并将属性作为参数传递

时间:2015-09-10 06:41:12

标签: angularjs angularjs-directive angularjs-scope angular-directive

这是html代码

<button type="submit" ng-click="get(selected_items)">Genrate</button>    

<pre>selected roles = {{selected_items}}</pre>

<grid table-data="data" cols="columnDefs" sortcols="name" pagination="true" enablefiltering="true" />

这是我的指示

 app.directive('grid', function ($compile) {
        return {
            restrict: 'E',
            template: function ($elem, $attr) {
                if ($attr.pagination == "true") {
                    return '<div class="gridStyle" ui-grid="options" ui-grid-pagination></div>';
                }
                else {
                    return '<div class="gridStyle" ui-grid="options" ></div>';
                }
            },
            scope: {},
            compile: function (cElem, cAttrs) {
                return {
                    pre: function (scope, iElement, iAttrs) {
                        scope.options = {};
                        if (iAttrs.pagination == "true") {
                            scope.options = {
                                paginationPageSizes: [6, 10, 20],
                                paginationPageSize: 6
                            };
                        }
                        if (iAttrs.enablefiltering=="true") {
                            scope.options.enableFiltering = true;
                        } 
                        scope.options.columnDefs = scope.$parent.$eval(iAttrs.cols);
                        var array;
                        if (iAttrs.sortcols.indexOf(',') > -1) {
                            array = iAttrs.sortcols.split(',');
                            _.each(scope.options.columnDefs, function (object) {
                                object.enableColumnMenu = false;
                                _.each(array, function (obj) {
                                    if (object.field == obj) {
                                        object.enableSorting = true;
                                    }
                                    else {
                                        if (object.enableSorting = true)
                                            return;
                                        object.enableSorting = false;
                                    }
                                });
                            });
                        }
                        else {                               
                            _.each(scope.options.columnDefs, function (object) {
                                object.enableColumnMenu = false;
                                if (object.field == iAttrs.sortcols) {
                                    object.enableSorting = true;
                                }
                                else {
                                    object.enableSorting = false;
                                }
                            });
                        }                        
                        scope.options.data = iAttrs.tableData;                            
                       scope[iAttrs.tableData] = scope.$parent.$eval(iAttrs.tableData);                        
                    }
                }
            }
        }
    });

当我点击按钮时,应该触发get函数并且应该调用指令但是当按钮点击时应该设置属性colspagination和&#39; table-data`应该如何我执行这个?

0 个答案:

没有答案