2015-05-19 55 views
2

我對FRP和bacon.js很新穎,所以我可能會做一些非常愚蠢的事情。手動觸發Bacon.js流更新?

測試應用程序有一個textarea和一個提交按鈕;提交按鈕將值添加到列表中,並且每次發生更改時都會顯示帶有React的列表。這裏有一個代碼的要點:https://gist.github.com/svileng/1f3702df855b50ed2f5e

我試圖解決的錯誤是,我可以多次單擊提交按鈕,並從textarea的最後一個值不斷增加到列表中。問題(我猜)是在第18行中,我正在手動清除textarea的值。因此,事件流newCommentValueS和屬性newComment未更新,並且最後一個值被掛起。

我該如何解決或解決問題?謝謝!

回答

2

解決此問題的一種方法是使用bacon.jquery中的textFieldValue。它創建一個模型,它是可以寫入的屬性的擴展。你的代碼會是這樣的:

var newCommentValueM = Bacon.$.textFieldValue("#new-comment", "") 
var newComment = newCommentValueM.filter(v => v.length > 0) 

var commentAdded = Bacon.when(
    [newComment, buttonClickS], (comment, click) => { 
     console.log("Submit comment: " + comment) 
     newCommentValueM.set("") 
     return comment 
    } 
) 
+0

感謝您的回答,OlliM!但這似乎只適用於。有沒有一個純粹的JS解決方案也可以處理