Angularjs 如何使用requirejs在angular应用程序中要求dojox?
我必须面对一个巨大的angularjs应用程序,它的UI部分将由dojo实现 我的项目是angularjs应用程序,其结构如下:Angularjs 如何使用requirejs在angular应用程序中要求dojox?,angularjs,require,dojo,Angularjs,Require,Dojo,我必须面对一个巨大的angularjs应用程序,它的UI部分将由dojo实现 我的项目是angularjs应用程序,其结构如下: 公开的 剧本 自由基 棱角的 道场 道场 迪吉特 多约克斯 require.js 模块 sub-directive1.js sub-directive2.js sub-app.js main.js index.html 在index.html文件中 <script data-main="scripts/main" src="scripts
- 公开的
- 剧本
- 自由基
- 棱角的
- 道场
- 道场
- 迪吉特
- 多约克斯
- require.js
- 模块
- sub-directive1.js
- sub-directive2.js
- sub-app.js
- main.js
- 自由基
- index.html
- 剧本
<script data-main="scripts/main" src="scripts/libs/require.js"></script>
在文件sub-app.js中
define([...], function (...) {
var app = angular.module("subApp",["ngRoute"]);
app.config([
//config something
]);
app.run([
// do something in runing phase
]);
return app;
});
在sub-directive1.js文件中,我需要dijit/Calendar为sub-directive1创建一个日历小部件。它工作得很好,requirejs可以很容易地找到“dijit/Calendar”
在sub-directive2.js文件中,我需要dojox/charting/Chart在sub-directive2中创建一个柱状图。但它无法工作,我的浏览器输出:
加载资源失败:服务器响应状态为404(未找到)
我想知道为什么requirejs可以正确地找到diji路径,但不能正确地找到dojox路径?它认为dojox是一个javascript文件,而不是一个目录。
这就是我困惑的地方 好的。
没有人回应。
我自己克服了它。
当我们想要使用requirejs来要求dojo/dijit/dojox时,我们应该执行两个步骤
define([...], function (...) {
var app = angular.module("subApp",["ngRoute"]);
app.config([
//config something
]);
app.run([
// do something in runing phase
]);
return app;
});
define([
"./sub-app"
], function(app) {
app.directive("subDirective1",
function() {
return {
restrict: "E",
replace: true,
link: function (scope, iElement, iAttrs){
......
require([
"dijit/Calendar",
"dojo/date",
"dojo/domReady!"
], function(Calendar, date){
new Calendar({
value: new Date(),
isDisabledDate: function(d){
var d = new Date(d); d.setHours(0, 0, 0, 0);
var today = new Date(); today.setHours(0, 0, 0, 0);
return Math.abs(date.difference(d, today, "week")) > 0;
}
}, iElement);
});
}
}
}
);
});
define([
"./sub-app"
], function(app) {
app.directive("subDirective2",
function() {
return {
restrict: "E",
replace: true,
link: function (scope, iElement, iAttrs){
......
require(["dojox/charting/Chart",
......
"dojo/ready"],
function(Chart, Default, Lines, Wetland, ready){
ready(function(){
var c = new Chart("chart3");
.....
iElement.append(chart1);
});
});
}
}
}
);
});