Javascript 在jqxGrid中呈现AngularJS指令

Javascript 在jqxGrid中呈现AngularJS指令,javascript,angularjs,jqxgrid,jqwidget,Javascript,Angularjs,Jqxgrid,Jqwidget,使用jqxGrid生成包含数据的表(显然) 我已经在jqxGrid中加载了我的angular directive元素,数据可以很好地更新网格,但它只是停留在那里,没有渲染,我不知道如何触发渲染 以下是我的jqx设置: AppvisAgentsCtrl.settings = { autowidth: true, ... columns: [ { text: 'A', cellsrenderer: insertActio

使用jqxGrid生成包含数据的表(显然)

我已经在jqxGrid中加载了我的angular directive元素,数据可以很好地更新网格,但它只是停留在那里,没有渲染,我不知道如何触发渲染

以下是我的jqx设置:

   AppvisAgentsCtrl.settings = {
        autowidth: true,
        ...
        columns: [

            { text: 'A', cellsrenderer: insertActionMenu, width: 50 },
           ...
        ]
    }
其中insertActionMenu就是这样:

function insertActionMenu(){

    var output = [
        '<actionmenu></actionmenu>'
        ].join('');

    return output;
}
函数插入操作菜单(){
变量输出=[
''
].加入(“”);
返回输出;
}
我的问题是,在DOM检查器中,我只会看到
位于页面的每一列,我想告诉它呈现为它应该是的指令

是的,actionmenu指令有效,我在整个应用程序中多次使用它

编辑

一切都在jqx网格指令内:

<jqx-grid 
    jqx-settings="appvisagents.settings" 
    jqx-source="appvisagents.testData.things">
</jqx-grid>


假设这是在指令中发生的,您需要编译

好的,所以我发现唯一可行的方法是在设置中使用“呈现”事件和$compile my actionmenus逐个编译

不幸的是,我无法在注入之前对其进行$compile,因为jqx gid只会注入文本和HTML,任何附加对象的尝试都会导致附加
[object object]

AppvisAgentsCtrl.settings = {
        autowidth: true,
        ...
        columns: [

            { text: 'A', cellsrenderer: insertActionMenu, width: 50 },
           ...
        ],
        rendered: function(){ 
            $element.find('actionmenu').each(function(i,e){
                $compile(e)($scope);
            });
        }
    }
对我来说,这不是一个好的解决方案,原因如下:

  • 尽管为这个任务强制使用jqwidgets,但我还是想避免 尽可能多地使用jQuery
  • 我不知道这会有什么影响 性能超过数千行
  • 我仍然需要修改以将该指令绑定到与行对应的数据模型

但是我确实让它呈现了。

你是说在指令的compile函数中还是在insertActionMenu()中?$compile服务只能在指令中使用,你需要在函数中添加actionMenu指令进行编译,这样angular就知道它需要用真正的指令dom来替换它。我意识到在您的情况下,代码可能不在jqxgrid指令中,所以我不确定您是否可以这样做。也许可以试试这个:你找到更好的解决方案了吗?