2012-07-20 25 views
0

!更正

綁定不是它。當你添加到你的模式中時,你會逐漸產生缺少值的不一致(在我的例子中爲關係)。我的.create()調用以這樣的方式觸及Parse/Mongo,即模型綁定要求重新啓動主視圖。簡便的解決方案:在一段時間:)Unbinding .create()

一次擦拭您的數據......

我的主要觀點有_.bindAll(this, 'addOne', 'addAll', 'render', 'logOut', '...'); 另一種觀點認爲我設置使用這2種鏈式方法Parse.Relation:

1 // If you hit return in the add friend input field, create new Email model 
2 // and friend it 
3 addFriendOnEnter: function(e) { 
4 var self = this; 
5 console.log("About to create email "+self.emailInput.val()); 
6 self.emails.create(
7  { 
8  email: self.emailInput.val(), 
9  ACL:  new Parse.ACL(Parse.User.current()) 
10  }, 
11  { 
12  success: function (email) { 
13   console.log("Email added "+email.get("email")); 
14   self.addFriend(email); 
15  } 
16  }, 
17  { 
18  silent:true 
19  } 
20 ); 
21 console.log("Created email"); 
22 }, 
23 
24 addFriend: function(email) { 
25 console.log("Add friend relation to topic "+email.get("email")); 
26 this.friendsRel.add(email); 
27 console.log("Save topic"); 
28 this.options.topic.save({silent:true}); 
29 console.log("Render friend"); 
30 this.renderOneFriend(email); 
31 console.log("Clear input val"); 
32 this.emailInput.val(''); 
33 }, 

我看到的最後一個日誌是21行,好像addFriend沒有被調用,基本上應用程序刷新自己,即我被拋回到重新呈現自己的主視圖。

我懷疑的一個方向是主視圖綁定到任何模型更改,包括.create()調用。

如何解除該特定呼叫?

感謝, 剛

回答

0
  1. 我會添加一個錯誤處理程序到您的創建調用,所以你知道如果也許這是調用而不是成功。

  2. 您是否嘗試過Chrome的JavaScript調試器中的代碼?然後你會確定哪個函數被調用。

  3. 沉默:true應該在與成功相同的選項對象中。

  4. 您可以嘗試使用「var email = new Email(...)」或其他方法創建對象,然後保存並在保存的成功處理程序中調用self.emails.add(email)。

+0

謝謝這些是真棒指針,特別是關於沉默:true和分解.create()到.add()和.save()。原來,我的老行是問題。 – 2012-07-20 21:17:31

0

可以是你忘了單擊處理程序e.preventDefault()

+0

謝謝下次我會記住這一點! – 2012-07-20 21:15:12