gpt4 book ai didi

javascript - 剑道网格 : getting an instance in a Angular directive

转载 作者:行者123 更新时间:2023-12-02 16:28:57 28 4
gpt4 key购买 nike

这直接来自 this question (还有一个额外的问题,因此我认为应该是一个新帖子?)

上面的链接展示了如何在 Angular 中获取网格实例(感谢 Lars)

因此,根据最后一个示例,我现在添加了以下指令..

<body>    
<div data-ng-app="app">
<div data-ng-controller="Grid as vm">
<div id='aa'>
<div pckendo id='bb' kendo-grid='grid'
k-options="vm.options"></div>
</div>

</div>
</div>
</body>

并在.js中添加

angular
.module("app", ["kendo.directives"])
.controller("Grid", Grid)
.directive('pckendo', PCKendo);
....
function PCKendo() {

function link(scope, element, attrs) {
var instance = element;
var vm = scope.vm;

vm.msg = "";
var grid = scope.grid;

}

return {
link: link
}

参见here完整示例。

我不想在 Controller 中获取实例,而是想通过指令获取它(据我所知,这是进行事件处理等的更好地方)

我在那里尝试了一些方法,但无法获取网格实例,因此这里的任何进一步帮助都会很棒。

提前致谢!

最佳答案

基本上你做同样的事情;您需要等待 kendoRendered 事件,例如像这样(请注意,此示例可能不符合 Angular 最佳实践(重新隔离范围等)):

function PCKendo($timeout) {
function link(scope, element, attrs) {
scope.$on("kendoRendered", function (e) {
scope.$apply(function () {
scope.vm.setMessage("one col");
scope.grid.hideColumn(1);
});

$timeout(function () {
scope.$apply(function () {
scope.vm.setMessage("all cols");
scope.grid.showColumn(1);
});
}, 2000);
});
}

return {
link: link
}
}

( demo )

关于javascript - 剑道网格 : getting an instance in a Angular directive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28470493/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com