2015-11-25 3 views
0

Привет всем У меня есть этот код, и я новичок в ajax-вещах, и я использую tinymce jquery, и я использую упоминающий плагин, который я нашел, поэтому то, что я делаю в этом коде, - это сделать список пользователей, которые я могу упомянуть так что мне нужно, чтобы сделать этот код запуска:Как преобразовать данные строки из ajax успеха в данные javascript?

упоминания сайт плагин является: https://github.com/CogniStreamer/tinyMCE-mention

WebMethod Часть:

[WebMethod] 
    public static string GetUsers() 
    { 
     return "[{name:'Messi'},{name:'Jason'},{name:'Omar'},{name:'Eren'}]"; 
    } 

и вот Аякса часть кода:

function dat() { 
      $.ajax({ 
       type: "POST", 
       url: "Default.aspx/GetUsers", 
       data: "{}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { 
       alert(data.d);//show me this alert "[{name:'Messi'},{name:'Jason'},{name:'Omar'},{name:'Eren'}]" 
        return data.d; 
       }, 
       error: function (data) { 
        return ""; 

       } 
      }); 
     } 

и вот варианты JQuery TinyMCE часть:

tinymce.init({ 



     selector: '#Selector', 
     theme: 'modern', 
     elements: "rte", 
     plugins: [ 
      'advlist autolink mention lists link image charmap preview hr anchor pagebreak', 
      'searchreplace wordcount visualblocks visualchars code fullscreen', 
      'insertdatetime media nonbreaking table contextmenu directionality', 
      'emoticons template paste textcolor colorpicker imagetools' 
     ], 
     mentions: { 
      source:dat()//the default option was [{ name: 'Messi'},{name:'Jason'},......] 
     },}) 

так на самом деле, что мне нужно сделать, чтобы конвертировать Дат() возвращать часть так же, как и по умолчанию , и я очень благодарен за помощь

ответ

0

Я нашел ответ на свой вопрос.

Что мне нужно, это функция eval(). Я заменил source:dat() на source: eval(dat()), и все работает отлично.

0

Таким образом, ваша функция успеха - это функция обратного вызова, которая не запускается до завершения вашей функции dat. Поэтому функция dat ничего не возвращает. Попробуйте добавить asyc: false, поэтому метод ждет.

function dat() { 
    var retdat; 
     $.ajax({ 
      type: "POST", 
      url: "Default.aspx/GetUsers", 
      data: "{}", 
      contentType: "application/json;  charset=utf-8" 
      async:false 
      dataType: "json", 
      success: function (data) { 
      alert(data.d);//show me this alert "[{name:'Messi'},{name:'Jason'},{name:'Omar'},{name:'Eren'}]" 
       retdat = data.d; 
      }, 
      error: function (data) { 
       return ""; 

      } 
     }); 
     return retdat; 
    } 

Вам не нужно это, но ответить на название вашего вопроса вы будете использовать JSON.parse()

Вы также можете переместить крошечную функцию MCE инициализации для выполнения в функции успеха, и вы могли бы держать вызов асинхронный.

+0

Нет, он не работает, что мне действительно нужно сделать, это преобразовать строку '" [{name: "name1"}, {name: "name2"}] "' для объекта, как 'var x = [{ name: "name1"}, {name: "name2"}]; ' –

+0

Я добавил в свой ответ использование JSON.parse (mystring) –

0

вы можете попробовать

function dat() { 
     $.ajax({ 
      type: "POST", 
      url: "Default.aspx/GetUsers", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (data) { 
      alert(data.d);//show me this alert "[{name:'Messi'},{name:'Jason'},{name:'Omar'},{name:'Eren'}]" 
      var result = JSON.parse(data.d); 
       //or you can do without do statically like split(data.d,'"'); then whatever result you get can return that is also 
       return result; 
      }, 
      error: function (data) { 
       return ""; 

      } 
     }); 
    } 
+0

Я решаю его, и я также размещаю решение здесь –

0

Сами данные уже в правильном формате.

Поскольку данные получены асинхронно, вы должны вызвать метод process в своем обратном вызове, чтобы передать данные обратно в плагин. Это объясняется более подробно here.

+0

Я решаю его, и я отправляю решение тоже спасибо –

Смежные вопросы