2009-05-07 4 views
0

Dojo Filtering에 몇 가지 문제점이 있습니다. Zend Framework Forms를 사용할 때 선택하십시오. 내가 놓친 것을 찾기 위해 도움이 필요합니다.dojo.data is undefined Fliterering select

나는 현재 불을 지르고이 오류를 얻고있다 :

  • dojo.data하는
  • dojo.data.ItemFileReadStore 생성자 아래

없는 정의되지 않은 코드입니다 I 필터 선택을 생성하고 호출 컨트롤러에 json 데이터를 제공하는 데 사용하고 있습니다.

Zend_Form 요소 (도장 사용)

$industry = new Zend_Dojo_Form_Element_FilteringSelect('industry'); 
    $industry->setAutocomplete(true) 
    ->setStoreId('industrystore') 
    ->setStoreType('dojo.data.ItemFileReadStore') 
    ->setStoreParams(array('url' => $baseUrl.'/dojo/industry')) 
    ->setAttrib("searchAttr", "title") 
    ->setRequired(true) 
    ->removeDecorator('DtDdWrapper') 
    ->removeDecorator('label') 
    ->removeDecorator('HtmlTag'); 

도장 컨트롤러

public function industryAction(){ 

    $db = Zend_Db::factory($this->config->database); 

    $result = $db->fetchAll("SELECT * FROM industries"); 
    $data = new Zend_Dojo_Data('industryid', $result); 
    $this->_helper->autoCompleteDojo($data); 

    $db->closeConnection(); 
} 

성가신 일이 형태와 다른 형태의 모든 내 다른 도장 요소가 잘 작동되는이 단지입니다 내가 필터링 할 때마다 이러한 문제가 발생합니다.이 문제는 양식의 다른 모든 요소도 실패하게 만듭니다.

미리 감사드립니다.

답변

0

문제는 실제로 툴킷이 완전히로드되기 전에 Zend Framework가 dijits 및 데이터 저장소를 초기화하는 방법과 관련이 있습니다.이 경우 특히 저장소를 dijit에 할당하는 방법입니다. 나는이 문제에 대해서도 만났고 문제를 해결하는 가장 좋은 방법은 컨트롤러의 데이터 저장소를 뷰에 정의 된 JavaScript 변수로 전달하거나 특정 자동 완성 작업으로 수행 한 작업을 수행하는 것입니다. 귀하의 예를 바탕으로 다음과 같이 변경합니다. 내가 요소 단순화 할 양식에서

:

:보기에

$industry = new Zend_Dojo_Form_Element_FilteringSelect('industry'); 
    $industry->setAutocomplete(true) 
    ->setRequired(true) 
    ->removeDecorator('DtDdWrapper') 
    ->removeDecorator('label') 
    ->removeDecorator('HtmlTag'); 

당신은 당신의 인 Dijit에 가게를 연결하고 dojo.data.ItemFileReadStore 모듈을로드했는지 확인하려면

<?php $this->dojo()->onLoadCaptureStart()?> 
    function(){ 
     dijit.byId('industry').store = new dojo.data.ItemFileReadStore({ url: '/controller/industry' }); 
    } 
<?php 
    $this->dojo()->onLoadCaptureEnd(); 
    $this->dojo()->requireModule('dojo.data.ItemFileReadStore'); 
?> 

내가 언급 한 것처럼 비슷한 문제가있어서 here이라고 대답했습니다. 데이터 저장소가 Zend_Dojo_Data의 레이블 선언에 "이름"이외의 다른 것으로 선언 된 레이블을 다루는 것을 좋아하지 않는다는 또 다른 문제점이 있습니다.

관련 문제