2011-08-10 5 views
0

私はEnyo(TouchPad)の新しい開発者です。私はそれにいくつかのチャートからなるアプリを開発したいと思います。私はEnjoでDojoフレームワーク・ライブラリーを使用しようとしています。Enyo ..でDojoコードを使用する方法

誰でも私のアプリケーションのdojoコードを含める方法を教えてください。 私のコードを投稿しています。どうぞご覧ください。

INDEX.HTML:

<!doctype html> 
<html> 
<head> 
<title>Canvas Demo</title> 
<script src="../../../../1.0/framework/enyo.js" type="text/javascript"></script> 
<script src="lib/widget/Chart2D.js" type="text/javascript"> </SCRIPT> 
<script src="lib/chart2D.js" type="text/javascript"> </SCRIPT> 
<script src="lib/tom.js" type="text/javascript"> </SCRIPT> 
</head> 
<body> 
<script type="text/javascript"> 
enyo.create({kind: "CanvasDemo"}).renderInto(document.body); 
</script> 
</body> 
</html> 

.jsファイル::

enyo.kind({ 
name: "CanvasDemo", 
kind: enyo.Control, 
nodeTag: "canvas", 
domAttributes: { 
    width:"300px", 
    height:"300px", 
    style: "border: 2px solid #000;" 
}, 
// After the canvas is rendered 
rendered: function() { 

    // I want to place the dojo code here to display a chart in the canvas. 

    } 
    }); 

DOJO CODE ::

dojo.require('dojox.charting.Chart2D'); 
dojo.require('dojox.charting.widget.Chart2D'); 
dojo.require('dojox.charting.themes.Tom'); 

/* JSON information */ 
var json = { 
    January: [12999,14487,19803,15965,17290], 
    February: [14487,12999,15965,17290,19803], 
    March: [15965,17290,19803,12999,14487] 
}; 

/* build pie chart data */ 
var chartData = []; 
dojo.forEach(json['January'],function(item,i) { 
    chartData.push({ x: i, y: json['January'][i] }); 
}); 

/* resources are ready... */ 
dojo.ready(function() { 

    var chart2 = new dojox.charting.Chart2D('chart2'). 
        setTheme(dojox.charting.themes.Tom). 
        addPlot('default', {type: 'Pie', radius: 70, fontColor: 'black'}). 
        addSeries('Visits', chartData). 
        render(); 
    var anim = new dojox.charting.action2d.MoveSlice(chart2, 'default'); 
    chart2.render(); 

}); 

ので、道場のコードを変更する方法で私を助けてくださいそれはenyoで働くことができる。

ありがとうございました。

よろしく、 ハリー。


のindex.html:

<!doctype html> 
<html> 
<head> 
<title>dojo</title> 
<script src="C:\WebOs\Development\enyo\1.0\framework\enyo.js" type="text/javascript"></script> 
<script type="text/javascript" src="C:\Users\pangulur\Downloads\dojo-release-1.6.1-src\dojo-release-1.6.1-src\dojo\dojo.js"></script> 
/head> 
<body> 
<script type="text/javascript"> 
new enyo.Canon.graphs2().renderInto(document.body); 
</script> 
</body> 
</html> 

ソース/ Charts1.js:

enyo.kind({ 
name: "enyo.Canon.graphs2", 
kind: enyo.Control, 
components: [ 
    {kind: "PageHeader", content: "bargraph"}, 
    //{style: "padding: 10px", content: "Note: In the browser, you can press ctrl-~ to display the app menu."}, 
    {kind: "Button", caption: "display graph", onclick: "displayGraph", flex: 1}, 
    ], 
     displayGraph: function() { 

dojo.require('dojox.charting.Chart2D'); 
    dojo.require('dojox.charting.widget.Chart2D'); 
    dojo.require('dojox.charting.themes.PlotKit.green'); 

    /* JSON information */ 
    var json = { 
     January: [12999,14487,19803,15965,17290], 
     February: [14487,12999,15965,17290,19803], 
     March: [15965,17290,19803,12999,14487] 
    }; 

    /* build pie chart data */ 
    var chartData = []; 
    dojo.forEach(json['January'],function(item,i) { 
     chartData.push({ x: i, y: json['January'][i] }); 
    }); 

    /* resources are ready... */ 
    dojo.ready(function() { 

     //create/swap data 
     var barData = []; 
     dojo.forEach(chartData,function(item) { barData.push({ x: item['y'], y: item['x'] }); }); 
     var chart1 = new dojox.charting.Chart2D('chart1'). 
         setTheme(dojox.charting.themes.PlotKit.green). 
         addAxis('x', { fixUpper: 'major', includeZero: false, min:0, max:6 }). 
         addAxis('y', { vertical: true, fixLower: 'major', fixUpper: 'major' }). 
         addPlot('default', {type: 'Columns', gap:5 }). 
         addSeries('Visits For February', chartData, {}); 
     var anim4b = new dojox.charting.action2d.Tooltip(chart1, 'default'); 
     var anim4c = new dojox.charting.action2d.Shake(chart1,'default'); 
     chart1.render(); 
     // var legend4 = new dojox.charting.widget.Legend({ chart: chart1 }, 'legend3'); 

    }); 



} 
}); 

ここでは、私はenyoに道場のコードを呼び出す方法についてはよく分かりません。

depends.js:

enyo.depends(

"source/charts1.js", 
"lib/Chart2D.js", 
"lib/widget/Chart2D.js", 
"lib/blue.js", 
"lib/dojo.js" 
); 

は今、私は次のエラーを取得しています:

error: Uncaught ReferenceError: dojo is not defined, Chart2D.js:1 
    [20110818-09:33:13.136736] error: Uncaught ReferenceError: dojo is not defined, widget/Chart2D.js:1 
[20110818-09:33:13.138227] error: Uncaught ReferenceError: dojo is not defined, blue.js:1 
[20110818-09:33:13.150707] error: Uncaught TypeError: Cannot read property 'graphs2' of undefined, index.html:10 

私はと.HTMLファイルとしてそれを使用するとき、それが正常に動作していますブラウザの同じコード。

Chart.html:

<html> 
<head> 

<title>dojo</title> 

<script type="text/javascript" src="C:\Users\pangulur\Downloads\dojo-release-1.6.1- src\dojo-release-1.6.1-src\dojo\dojo.js"></script> 


</head> 
<body> 

<div id="chart1" style="width:260px;height:200px;"></div> 
<script> 
dojo.require('dojox.charting.Chart2D'); 
dojo.require('dojox.charting.widget.Chart2D'); 
dojo.require('dojox.charting.themes.PlotKit.green'); 

/* JSON information */ 
var json = { 
    January: [12999,14487,19803,15965,17290], 
    February: [14487,12999,15965,17290,19803], 
    March: [15965,17290,19803,12999,14487] 
}; 

/* build pie chart data */ 
var chartData = []; 
dojo.forEach(json['January'],function(item,i) { 
    chartData.push({ x: i, y: json['January'][i] }); 
}); 

/* resources are ready... */ 
dojo.ready(function() { 

    //create/swap data 
    var barData = []; 
    dojo.forEach(chartData,function(item) { barData.push({ x: item['y'], y: item['x'] }); }); 
    var chart1 = new dojox.charting.Chart2D('chart1'). 
        setTheme(dojox.charting.themes.PlotKit.green). 
        addAxis('x', { fixUpper: 'major', includeZero: false, min:0, max:6 }). 
        addAxis('y', { vertical: true, fixLower: 'major', fixUpper: 'major' }). 
        addPlot('default', {type: 'Columns', gap:5 }). 
        addSeries('Visits For February', chartData, {}); 
    var anim4b = new dojox.charting.action2d.Tooltip(chart1, 'default'); 
    var anim4c = new dojox.charting.action2d.Shake(chart1,'default'); 
    chart1.render(); 
    var legend4 = new dojox.charting.widget.Legend({ chart: chart1 }, 'legend3'); 

}); 
</script> 


</body> 
</html> 

Enyoでこれに取り組んで私を助けてください。ありがとうございます。

親切、 ハリー。

答えて

0

Dojoコードを変更する必要はありません。 Enyoでは、フレームワークにJSファイルがどこにあるかを調べる必要があります。 depends.jsファイルを編集してください。

のindex.html:

<!doctype html> 
<html> 
<head> 
<title>Canvas Demo</title> 
<script src="../../../../1.0/framework/enyo.js" type="text/javascript"></script> 
</head> 
<body> 
<script type="text/javascript"> 
    new enyo.Canon.graphs2().renderInto(document.body); 
</script> 
</body> 
</html> 

とdepends.js:

enyo.depends(
    "lib/dojo/dojo.js" , 

    "source/charts1.js" 
    ); 

あなたは道場がLIBに(道場、dojox、dijitのを)仕事に必要なすべてをコピーする必要がありますし、 enyoのパスを確認してください。

新しいChart2Dオブジェクトの作成時にDojoエラーが発生しましたが、これを修正するDojoのエキスパートではありません。それはラインにあります:

var chart1 = new dojox.charting.Chart2D("simplechart"); 

私はあなたのコードを変更した:

enyo.kind({ 
name: "enyo.Canon.graphs2", 
kind: enyo.Control, 
components: [ 
{kind: "PageHeader", content: "bargraph"}, 
//{style: "padding: 10px", content: "Note: In the browser, you can press ctrl-~ to display the app menu."}, 
{kind: "Button", caption: "display graph", onclick: "displayGraph", flex: 1}, 
], 
    displayGraph: function() { 

dojo.require('dojox.charting.Chart2D'); 
dojo.require('dojox.charting.widget.Chart2D'); 
dojo.require('dojox.charting.themes.PlotKit.green'); 

/* JSON information */ 
var json = { 
    January: [12999,14487,19803,15965,17290], 
    February: [14487,12999,15965,17290,19803], 
    March: [15965,17290,19803,12999,14487] 
}; 

/* build pie chart data */ 
var chartData = []; 
dojo.forEach(json['January'],function(item,i) { 
    chartData.push({ x: i, y: json['January'][i] }); 
}); 

/* resources are ready... */ 
dojo.ready(function() { 

    //create/swap data 
    var barData = []; 
    dojo.forEach(chartData,function(item) { barData.push({ x: item['y'], y: item['x'] }); }); 
    var chart1 = new dojox.charting.Chart2D("simplechart"); // HERE IS THE PROBLEM 
    chart1.setTheme(dojox.charting.themes.PlotKit.green); 
        chart1.addAxis('x', { fixUpper: 'major', includeZero: false, min:0, max:6 }); 
        chart1.addAxis('y', { vertical: true, fixLower: 'major', fixUpper: 'major' }); 
        chart1.addPlot('default', {type: 'Columns', gap:5 }); 
        chart1.addSeries('Visits For February', chartData, {}); 
    var anim4b = new dojox.charting.action2d.Tooltip(chart1, 'default'); 
    var anim4c = new dojox.charting.action2d.Shake(chart1,'default'); 
    chart1.render(); 
    // var legend4 = new dojox.charting.widget.Legend({ chart: chart1 }, 'legend3'); 

}); 

} });

オブジェクトがインスタンス化されません。 nullポインタを得ました:-(

+0

こんにちは、 私はこれを前に依存していませんでしたが、今私はこれを試しましたが、まだdojoを実行しませんでした。見てください。 ありがとうございます。 – harry

関連する問題