2013-02-13 2 views
0

Я изучаю додзё и начинающего. Я хотел бы загрузить и отредактировать текстовый файл из интерфейса с помощью Dojo. Пожалуйста, назовите меня, какой из компонентов в додзё хватит.Редактирование текстового файла dojo

+0

Почему вы спрашиваете о додзе ?? если java уже имеет возможность манипулировать текстовым файлом – Garry

+0

Причина, по которой я ищу dojo, - это то, что я хочу отредактировать файл из пользовательского интерфейса и сохранить его обратно. Пожалуйста, предложите мне любой другой способ этого. – skanda

+0

Этот вопрос серьезно отсутствует в деталях. Как этот текстовый файл получен? С вашего сервера; с другого сервера; через WebService; загрузка пользователя; ввод в текстовое поле ... что вы ищете? Что вы уже пробовали? –

ответ

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> 

Это позволит загрузить текстовый файл с именем файла вы можете ввести в текстовом поле (после нажатия получить). Содержимое загружается в текстовое поле для редактирования и может быть отправлено обратно на сценарий сервера, нажав отправить.

Это, как я уже сказал, «очень грубый пример». Тем не менее, он показывает использование dojo/request для приема и публикации информации на сервере. Очевидно, вам нужно более сложное решение, которое скрывает/показывает виджеты в подходящий момент. Вероятно, вы захотите заменить текстовое поле с именем какого-то комбо, заполненного кодом вашего сервера ... и т. Д.

Я бы предложил вам write your own widget, чтобы инкапсулировать всю операцию, а не объявлять все в разметке , Вы можете использовать dojo/request для загрузки json-файла с сервера, чтобы заполнить поле со списком, чтобы выбрать файл. Вы также хотите, чтобы информация, отправляемая обратно, была получена из надежного источника.

Важно! Это будет работать только в том случае, если текстовый файл и ваша веб-страница находятся в одном домене. Он не будет работать для междоменных запросов. Если вы хотите сделать кросс-домен, вам нужно создать json-решение.