2013-02-13 157 views
0

我正在學習dojo和一個begginer。我想使用Dojo從界面加載和編輯文本文件。請指導我在道場的哪個組件就足夠了。編輯文本文件dojo

+0

你爲什麼要求dojo?如果java已經有選項來操作文本文件 – Garry 2013-02-13 14:55:50

+0

我尋找dojo的原因是因爲我正在從用戶界面編輯文件並將其保存回去。請給我建議任何其他方式來滿足這一點。 – skanda 2013-02-13 15:14:25

+0

這個問題嚴重缺乏細節。這個文本文件是如何獲得的?從你的服務器;從另一臺服務器;通過WebService;用戶上傳;輸入到文本字段...你在找什麼?你已經嘗試了什麼? – 2013-02-13 15:25:32

回答

0

從回答我的評論,我的理解是,你想:

  1. 輸入一個文件名到網頁上的表格。
  2. Dojo然後會從您的服務器加載該特定的文本文件。
  3. 然後該文件需要以某種編輯組件顯示在屏幕上。
  4. 用戶然後需要設施將文件發回服務器。

我本以爲最好的方法是使用dojo/request來獲取文本文件,然後再次使用它來回發。你可以用各種dojo dijits來做選擇和顯示。

一種非常原始的解決辦法是:

<form data-dojo-type="dijit/form/Form"> 

    <input type="text" id="fileName" data-dojo-type="dijit/form/TextBox" /> 
    &nbsp;<button data-dojo-type="dijit/form/Button" type="button">Get 
     <script type="dojo/on" data-dojo-event="click"> 
      require([ 
       "dijit/registry", 
       "dojo/request" 
      ], function(registry, request) { 
       var fileName = registry.byId("fileName").get("value"); 

       request(fileName, { 
        "handleAs": "text" 
       }).then(function(content){ 
        registry.byId("content").set("value", content); 
       }); 
      }); 
     </script> 
    </button><br /><br /> 

    <textarea id="content" data-dojo-type="dijit/form/TextBox"></textarea> 
    <button data-dojo-type="dijit/form/Button" type="button">Send 
     <script type="dojo/on" data-dojo-event="click"> 
      require([ 
       "dijit/registry", 
       "dojo/request" 
      ], function(registry, request) { 
       var content = registry.byId("content").get("value"); 
       request("myhandler.php", { 
        "method": "post", 
        "data": { 
         "content": content 
        } 
       }).then(function(content){ 
        // deal with the response 
       }); 
      }); 
     </script> 
    </button> 

</form> 

這將加載與您在文本框中輸入文件名的文本文件(點擊後得到)。內容被加載到textarea進行編輯,並可通過點擊發送發送回服務器腳本。

這就像我說的「一個非常粗糙的例子」。但是,它顯示了使用dojo/request接收和發佈服務器的信息。顯然,你會想要一個更復雜的解決方案,在適當的時候隱藏/顯示小部件。你可能想要用某種組合填充通過你的服務器代碼等替換文件名文本框等。

我建議你write your own widget來封裝整個操作,而不是將其全部聲明爲標記。您可以使用dojo/request從服務器加載json文件來填充組合框來選擇文件。您還希望確保所發回的信息來自可信來源。

重要!這隻有在文本文件和你的網頁位於同一個域中時纔有效。它不適用於跨域請求。如果你想跨域,你需要創建一個json解決方案。