为什么我的角度定向在一个表格单元格而不是其他表格单元格?

时间:2016-04-22 09:01:32

标签: angularjs kendo-grid contextmenu

我在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;
      }

感谢您提供的所有帮助^ _ ^

0 个答案:

没有答案