2017-09-19 6 views
0

Kendo UI 2017 scheint nicht mit requires + angular + angularAMD zu arbeiten. Aber wenn ich zur Kendo-Version 2015 wechsele, funktioniert es gut.Kendo UI 2017 funktioniert nicht mit angular + angularAMD + requirejs

Irgendwelche Vorschläge, wie ich das überwinden kann?

Dies ist Beispiel App. Bitte beachten - Wenn ich die Kendo-Version auf 2015 ändere, funktioniert es.

https://plnkr.co/edit/DjOq6BfOVSHvIuSHliH8?p=preview

Index.HTML

<!DOCTYPE html> 
<html> 
<head> 
     <script data-main="main.js" src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.9/require.min.js"></script> 
     <link href="//kendo.cdn.telerik.com/2016.3.914/styles/kendo.common.min.css" rel="stylesheet" /> 
</head> 
<body> 
     <h1>Hello Plunker!</h1> 
     <div kendo-tab-strip k-content-urls="[ null, null]"> 
       <ul> 
        <li class="k-state-active">First tab</li> 
        <li>Second tab</li> 
       </ul> 
       <div style="padding: 1em"> 
        This is the first tab 
       </div> 
       <div style="padding: 1em"> 
        This is the second tab 
       </div> 
     </div> 
</body> 
</html> 

main.js

require.config({ 
     baseUrl: "", 
     waitSeconds: 0, 
     paths: { 
       'jquery': 'https://code.jquery.com/jquery-2.1.3.min', 
       'angular': 'https://code.angularjs.org/1.3.12/angular', 
       'angularamd': '//cdn.jsdelivr.net/angular.amd/0.2/angularAMD.min', 
       'kendo': 'https://kendo.cdn.telerik.com/2017.3.913/js/kendo.all.min', 
       //'kendo' : 'https://kendo.cdn.telerik.com/2015.1.429/js/kendo.all.min' --This version works 
     }, 
     shim: { 
       'angularAMD': ['angular'], 
       'kendo': ['jquery', 'angular'] 
     }, 
     deps: ['application-configuration'] 
}); 

applikations configuration.js

define(['angularamd', 'kendo'], function (angularAMD) { 
     var app = angular.module("mainModule", ['kendo.directives']); 
     angularAMD.bootstrap(app); 
     return app; 
}); 

Antwort

-1

Nach Bezugnahme auf require.js, fügen Sie diesen Codeblock hinzu:

define.amd ist eine Standardmethode, um JavaScript-Bibliotheken mitzuteilen, dass ein Skriptlader verwendet wird. Ich habe nicht nach Hinweisen gesucht, aber ich sehe, dass einige Bibliotheken nach define.amd suchen. Aus den Dokumenten von Kendo UI, https://docs.telerik.com/kendo-ui/third-party/using-kendo-with-requirejs, gibt es eine Anweisung, dass Kendo UI js bereits AMD-Modul sind.

Meine Workaround-Tricks die Skripte denken, dass es keinen Skriptlader existiert. Hoffe diese Hilfe

Verwandte Themen