我在我的MVC项目中使用了kendo ui。所以,我有这个简单的指令,当它没有被kendo渲染时执行。
.directive('okok', ['$log', function($log){
return {
link: function (scope, elm) {
$log.log('directive okok!!');
}
};
}])
该指令在此行中执行:
<h2 okok>Hello??</h2>
但是当razor生成html时,不会执行。这里
@(Html.Kendo().Grid(Model.CoolModel)
.Name("CoolGrid")
.Columns(cols => {
cols.Bound(c => c.StatusDescription).Title("This is my test")
.ClientTemplate("<div okok></div>");
})
/* Mode code :) */
)
请注意以下行:.ClientTemplate("<div okok></div>");
不确定输出是否作为字符串处理,我必须做其他事情。感谢帮助!
答案 0 :(得分:0)
我通过编译绑定内容时包装网格的元素来管理这种情况。
Kendo在其Q&amp; A页面中有一个示例,其中显示了如何将菜单嵌入到grid.cell中,并且在呈现内容后必须执行启用子菜单的脚本。它有点蹩脚。
所以,我的控制器中有一个函数可以编译范围内的元素。
$scope.rebindElm = function(elm){
$compile(elm)($scope);
}
在视图中,当kendo.grid.OnContentBound(或类似的东西)执行脚本时
function bindContent(e){
var elm = angular.element('gridName');
var scope = elm.scope();
if (scope != null) {
scope.rebindElm(elm);
}
}
是的,感觉就像是黑客,但这是我发现使用kendo.mvc生成指令时执行的唯一方法