gpt4 book ai didi

javascript - 在 Kendo-AngularJS 应用程序中扩展 Kendo Widget

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:44:35 25 4
gpt4 key购买 nike

我正在尝试让我的扩展 Kendo Widget 与 AngularJS 一起工作。

在 Kendo 中,只有我的扩展小部件可以正常工作,您将从下面的代码中看到,但在 Angular 中则不行。

这是我的代码: http://dojo.telerik.com/AbeZO/7

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Kendo Menu Extended</title>

<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.2.805/styles/kendo.common.min.css">
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2015.2.805/styles/kendo.default.min.css">

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2015.2.805/js/angular.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2015.2.805/js/kendo.all.min.js"></script>
<script>
(function ($) {

var MyMenu = window.kendo.ui.Menu.extend({
init: function (element, options) {
window.kendo.ui.Menu.fn.init.call(this, element, options);
},
options: {
name: "MyMenu",
},
extendedFunctionality: function() {
return "extended functionality";
}
});


kendo.ui.plugin(MyMenu);

alert('menu extended');


})(jQuery);

</script>

</head>


<body>

<div ng-app="app" ng-controller="MyCtrl">

<p>Telerik Menu with Angular</p>
<ul kendo-menu k-data-source="menuData" k-rebind="menuData"></ul>
<p>My extended Menu with Angular</p>
<ul kendo-my-menu k-data-source="menuData" k-rebind="menuData"></ul>

</div>

<p>My extended menu with Kendo only</p>
<ul id="kendomymenu"></ul>

<script>
$("#kendomymenu").kendoMyMenu({
dataSource: [
{
text: "Item 4",
},
{
text: "Item 5",
},
{
text: "Item 6",
}
],
select: function () {
alert(this.extendedFunctionality());
},
});


angular.module("app", [ "kendo.directives" ]).controller("MyCtrl", function($scope){

$scope.menuData = [
{
text: "Item 1",
},
{
text: "Item 2",
},
{
text: "Item 3",
}
];
})
</script>
</body>
</html>

如何让它工作?

最佳答案

菜单根据小部件名称进行特殊区分,这就是未分配其数据源的原因。您最好为此创建一个自定义指令:

     .directive("kendoMenuDirective", function() {
return {
restrict: "A",
link: function(scope, element, attr) {
var dataSource = scope.$eval(attr.kDataSource);
$(element).kendoMyMenu({
dataSource: dataSource
});
}
};
});

这是您的演示的更新版本:http://dojo.telerik.com/@korchev/uNiDe

关于javascript - 在 Kendo-AngularJS 应用程序中扩展 Kendo Widget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32007634/

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