簡體   English   中英

返回BackboneJS上的model.save值

[英]return value of a model.save on BackboneJS

我在Backbone視圖上有功能:

onRender: function() {
      this.ui.form.on('submit', function() {

        mylogin = new login();

        valid = mylogin.save({boxid:$("#boxid").val(),password:$("#passwordid").val(),validate:true});

        if(valid != false)
        {
               vent.trigger('navigate', 'home');
        }

        return false;
      });

和模型上的這個功能:

validate: function(attrs, options){
    if(attrs.boxid.length < 10)
      {
        return false;
      }
   else if(attrs.password.length < 10)
      { 
        return false;
      }
   else
      {
        if((attrs.boxid!=myBoxid)||(attrs.password!=myPassword))
        {
          return false;
        }
        else
        {
        return true;
        }
      }

我想觸發這個vent.trigger('navigate', 'home'); 當驗證是正確的,但它不起作用,任何想法? 我做錯了什么?

我認為你在骨干validate如何工作的假設中有一個非常常見的錯誤。 如果驗證函數返回任何內容,則表示存在錯誤。 所以...首先,你是落后的。 當驗證失敗時,您將返回false,並且您應該返回一條消息,說明它失敗的原因。 此外,當您validate:true ,這不是您傳遞的選項,您實際上是在名為validate的模型上設置屬性。 選項作為第二個對象傳遞。

仔細閱讀這些文檔: http//backbonejs.org/#Model-validate

嘗試做這樣的事情。 抱歉沒有更多信息,這是我能幫到的最好的。 干杯。

視圖:

onRender: function() {
  this.ui.form.on('submit', function() {
    mylogin = new login();

    mylogin.save({
      boxid:$("#boxid").val(),
      password:$("#passwordid").val()
    });

    if(!myLogin.validationError) {
      vent.trigger('navigate', 'home');
    }

    return false;
  });
}

模型:

validate: function(attrs, options){
  if(attrs.boxid.length < 10) {
    return "user id must be more than 10 characters";
  } 

  if(attrs.password.length < 10) {
    return "password must be more than 10 characters";
  } 

  if((attrs.boxid!=myBoxid)||(attrs.password!=myPassword)) {
    return "Your login credentials are incorrect";
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM