我已經選擇了Bacon.js最近做了一些與它的UI,其中我只啓用'註冊'按鈕,如果需求是見面,其中一個是檢查用戶名是否有效。Bacon.js將屬性與.and()結合起來只有在prop === true
// Returns true or string with invalid reason
var isUsernameValid = username
.map(function(value) {
if(value.length < 4) {
return 'Must be 4 characters at least';
}
if(!config.patterns['username'].test(value)) {
return 'Can only have letters, numbers, periods, or underscores';
}
return true;
});
它會返回true或爲什麼用戶名無效。
後來我將所有的結果與此:當有輸入
password.and(username).and(isUsernameValid)
.not().assign($(view['signup-submit']), 'toggleClass', 'disabled');
的用戶名和密碼是唯一真正的,但由於isUsernameValid
總是返回truthy值按鈕最終被錯誤地啓用。
有沒有更好的方法來通過傳遞函數來返回錯誤或組合屬性?
我想宣佈另一個流/屬性返回如果value === true
但我試圖避免這一點。
感謝您的建議,但我最終改變我的函數返回一個Bacon.Next或Bacon.Error和改造基礎上的財產那。 – Mario