Angularjs 我想在单击按钮时调用自定义指令,并将属性作为参数传递
这是html代码 这是我的指令Angularjs 我想在单击按钮时调用自定义指令,并将属性作为参数传递,angularjs,angularjs-directive,angularjs-scope,angular-directive,Angularjs,Angularjs Directive,Angularjs Scope,Angular Directive,这是html代码 这是我的指令 当我点击按钮时,应该启动get函数并调用指令,但当我点击按钮时,应该设置cols、pagination和“table data”属性。我应该如何实现这一点 给我们看看你的指令。@JoeLloyd我刚才添加了我的指令。我想你需要一个链接函数来监视属性的变化。你能帮我看看吗? <button type="submit" ng-click="get(selected_items)">Genrate</button> <pre&g
当我点击按钮时,应该启动get函数并调用指令,但当我点击按钮时,应该设置cols、pagination和“table data”属性。我应该如何实现这一点 给我们看看你的指令。@JoeLloyd我刚才添加了我的指令。我想你需要一个链接函数来监视属性的变化。你能帮我看看吗?
<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);
}
}
}
}
});