2013-02-13 197 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解决方案。