私は Dojo を初めて使用し、達成しようとしていることを実行する方法に関する適切な資料や例を見つけることができないようです。既存の要素に新しいオプションを動的に追加する決定ツリー スタイル ドキュメントの作成に取り組んでいます。コードは、特定の DIV の末尾に新しいノードを追加する必要があります。これを行うには、branchID という要素の value 属性を見つける必要があります。次に、値を 1 増やし、新しい HTML をページに追加します。jQueryでは、これを使用します
$('#btnAddFork').click( function(){
var branchID = $('#branchID').attr( 'value' );
var newNodeHTML = "<div class='node'>new node #" + (++n) + "</div>';
$('div#NodeDIV').append( newForkHTML );
});
このコードは、要件の変更により別のフレームワークの使用を余儀なくされる前に作成した概念実証で機能します。Dojoで次のことを試しています
require(["dojo/dom-construct", "dojo/dom", "dojo/dom-attr", "dojo/on", "dojo/domReady!"],
function(domConstruct, dom, on){
on(dom.byId("btnAddFork"), "click", function(){
var n = domAttr.get("branchID", "value");
domConstruct.place("<div class='node'>new node #" + (++n) + "</div>", "NodeDIV");
});
});
n に値を代入しようとしている行で、Dojo コードが死んでいます。エラー メッセージは「TypeError: オブジェクトは関数ではありません」です。エラーメッセージは、解決策を見つけるための正しい方向を示していません。domAttr.get 関数を使用して値を取得しようとしている方法だと確信していますが、これを期待どおりに機能させる方法を見つけることができないようです。Dojo はこのようなことをどのように処理しますか? ソリューションをそのように記述する必要がある方法/理由に関するドキュメントを誰かが指摘できれば、非常に役立ちます。