2012-05-19 5 views
0

Я пытаюсь получить самое основное, что работает в Backbone.js, но как-то не получается. Код, который я создал для сохранения модели url на сервер.Backbone.js: функция успеха Save просто не работает

urlToAdd.set({url: urlBody.value, tags:tagsToAdd}); 
       urlToAdd.save({ 
        success:function(){ 
         console.log('it works'); 
        } 
       }); 

Он успешно отправляет данные на мою страницу PHP, однако я не могу получить успех событие для работы. Где я поступаю неправильно? Я внимательно наблюдал и ничего не мог найти.

Вот мое определение модели: (К сожалению, так как я магистральная нуб Я применил это, проверяя учебник, и я понятия не имею, если коды в URL функции необходимы

var URLWithTags=Backbone.Model.extend({ 
      initialize:function(){ 
       console.log('URL object has been initialized'); 
      }, 
      defaults:{ 
       url:'not defined', 
       tags:[] 
      }, 
      validate:function(attributes){ 
      //console.log(attributes.tags[0].length); 
       /*if(attributes.tags[0].length<1) 
        return "You should create at least one tag";*/ 
      }, 
      urlRoot:'/URLTags/manage.php', 
      url:function(){ 
       var base = this.urlRoot || (this.collection && this.collection.url) || "/"; 
       console.log("Base has been produced"); 
       if(this.isNew()) 
        return base; 

       return base+"?id="+encodeURIComponent(this.id); 
      }, 
     }); 
+0

http://stackoverflow.com/questions/5757555/how-do-i-trigger-the-success-callback-on-a-model-save – Gohn67

+0

@ Gohn67 Спасибо за комментарий. Mine отличается тем, что я вызываю функцию ** ** сохранения ** функции – Ali

ответ

2

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

urlToAdd.save(null,{success:function(){console.log('it works')}}); 

в соответствии с док.:

savemodel.save([attributes], [options]) ; 

так:

urlToAdd.save({},{success:successCallback , error:errorCallback}); 

РЕДАКТИРОВАТЬ

Exemple:

var Car,yukon,$target ; 
    Object.prototype.toString = function(){ 
     return JSON.stringify(this); 
    }; 

    Car = Backbone.Model.extend({ 
     url:"/echo/json" 
    }); 
    yukon= new Car({"color":"red","brand":"GM"}); 
    $target = $("#target"); 

    $target.append("describe yukon :",yukon.toString(),"<br/>"); 

    yukon.save({}, 
{ 
success:function(o){$target.append("save success <br/>",o.toString())}, 
error:function(e){$target.append("error",e)} 
} 
); 

где $ целью является объект, представляющий собой Jquery DIV с идентификатором цели.

+0

. Я обновлю код так, как вы предлагали, но я думаю, что я пробовал раньше и не работал. – Ali

+0

Я пытаюсь прямо сейчас. – Ali

+0

Не работает. 'urlToAdd.set ({url: urlBody.value, tags: tagsToAdd}); \t \t \t \t urlToAdd.save (нуль, \t \t \t \t { \t \t \t \t \t успех: функция() \t \t \t \t \t { \t \t \t \t \t \t console.log ('это работает') \t \t \t \t \t} \t \t \t \t}); 'добавлен дополнительный'} ', потому что он дает ошибку синтаксиса – Ali

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