我在kendo网格中使用ContextMenu指令。我对其进行了一处更改,因此我可以在文本中包含图标(将$ a.text(文本)更改为$ a.html(文本)。
我在第一个单元格(我劫持了分层单元格)中有一个具有行操作(添加,克隆和删除),每个单元格中有一个更改单元格值操作(加法,减法,等等等) ...)
这两项都有效。我不确定我改变了什么阻止它工作,因为我上次检查了几次变化(我仍然被TFS锁定,所以我无法恢复)。
我做的一个改变是在工作的contextMenu中包含一个禁用/启用的检查。我尝试将其添加到破碎的那个并且没有骰子。
我在工作菜单上执行$ compile,而破坏的只包含在kendo字段模板中。
如果我必须编译字段模板(我之前不需要),怎么办呢?
所以这是一些代码。 工作菜单:
$scope.getRowContextMenu = function (event) {
var options =
[[
"<span class='fa fa-files-o'></span>Clone Rule", function (scope, cmEvent) {/*omitted for brevity*/}),rowContextDisableFunction]]
}
var setHierarchyCell = function (grid) {
var element = grid.element;
var hCells = element.find("td.k-hierarchy-cell");
hCells.empty();
var spanStr = "<span context-menu='getRowContextMenu()' class='fa fa-bars'></span>";
hCells.append($compile(spanStr)($scope));
var span = hCells.find("span.fa");
span.on('click', function (event) {
$(this).trigger('contextmenu', event);
});
}
剑道模板:
var mutliFormTemplate = function (fieldName, type) {
var result = "";
result += "<span context-menu='getOperationContextMenuItems()' class='fa #= " + fieldName + "_Obj.OperationSymbol # type-" + type + "'> </span>\n";
/*The rest pertains to the cell value. excluded for brevity*/
return result;
}
$scope.getOperationContextMenuItems = function () {
//I trimmed this all the way down to see if I could get it working. Still no joy
return [
["test", function () { }, true]
];
}
动态创建kendo列:
$scope.model = {
id: "RuleId",
fields: {}
};
$scope.fieldsLoaded = function (data, fields) {
var column = {}
$.each(fields, function () {
var field = this;
$scope.columns.push({
field: field.Name,
title: field.Name,
template: mutliFormTemplate(field.Name, "selector")
});
column[field.Name ] = { type: getFieldType(field.Type.BaseTypeId) }
});
$scope.model.fields = column;
}
感谢您提供的所有帮助^ _ ^