2012-10-05 3 views
0

저는 Dojo를 처음 사용 했으므로 달성하려는 작업을 수행하는 방법에 대한 적절한 문서 또는 예제를 찾을 수 없습니다. 기존 요소에 새로운 옵션을 동적으로 추가하는 의사 결정 트리 스타일 문서를 만드는 중입니다. 코드는 특정 노드의 끝에 새로운 노드를 추가해야합니다. 이렇게하려면 branchID라는 요소의 value 속성을 찾아야합니다. 그런 다음 값을 1 씩 증가시키고 새 HTML을 페이지에 추가합니다. jQuery에서이 코드를 사용하겠습니다.Dojo - 다른 Dojo 함수와 getAttr 사용

$('#btnAddFork').click(function(){ 
    var branchID = $('#branchID').attr('value'); 
    var newNodeHTML = "<div class='node'>new node #" + (++n) + "</div>'; 
    $('div#NodeDIV').append(newForkHTML); 
}); 

이 코드는 요구 사항을 변경하기 전에 만들어진 개념 증명에서 작동하여 다른 프레임 워크를 사용해야했습니다. Dojo에서 다음을 시도합니다.

Dojo 코드는 값을 n에 할당하려고 시도하는 행에서 죽어 가고 있습니다. 오류 메시지는 "TypeError : object is not function"입니다. 오류 메시지는 해결책을 찾기 위해 올바른 방향으로 나에게 알려주지 못했습니다. domAttr.get 함수를 사용하여 값을 얻으려고 시도하는 방법이라고 확신하지만이 작업을 기대하는 방식으로 만들 수는 없습니다. Dojo는 어떻게 이런 것들을 처리합니까? 어떤 방법으로/왜 솔루션을 작성해야하는지 문서를 가리킬 수 있다면 매우 유용 할 것입니다.

답변

0

이 질문에 대한 해결책을 찾을 수 있었지만 질문을 삭제하는 대신 다른 사람이 실제로 초급 수준의 오류를 만들지 않도록 내가 찾은 것에 대한 세부 정보를 제공합니다. 문제는 require 문 다음에 함수 정의를 작성하는 방법이었습니다. 함수 정의에서는 require에 지정된 각 항목 (domReady!가 로더의 도우미 함수이기 때문에 제외)을 필요로합니다. 이 작은 세부 사항을 내가 문서를 읽을 때보고 싶었어. 다음 코드는 예상대로 작동합니다.

require(["dojo/dom-construct", "dojo/dom", "dojo/on", "dojo/dom-attr", "dojo/domReady!"], 
function(domConstruct, dom, on, domAttr){ 
    on(dom.byId("btnAddFork"), "click", function(){ 
    var n = domAttr.get("branchID", "value"); 
    domConstruct.place("<div class='node'>new node #" + (++n) + "</div>", "NodeDIV"); 
    domAttr.set("branchID", "value", n); 
    }); 
}); 

작업 코드에서 domAttr을 함수 정의에 추가했습니다. 아마도 domAttr에 대한 모든 설명서를 네 번째 또는 다섯 번째로 읽었을 때 함수 정의에 추가하지 않은 것을 알았습니다. 필자가 읽은 Dojo 문서는 require 문 작성 방법 및 사용법에 대해 명확하지 않으므로 처음 몇 시간을 놓쳤습니다.

관련 문제