我有一個表添加一個新的預算細節,如下面的圖片:Knockoutjs複合物結合的組合選擇表
當我選擇一個收入賬戶,然後另一行添加到視圖模型集合:
我想設置爲「0.00」時添加的所有字段值的新行和一因此,我有一個問題,因爲如果我刪除一行,那麼組合的「更改」事件不存在,因此在更改最後一個組合時無法添加新行。
任何線索?這裏是小提琴工作樣本:http://jsfiddle.net/rLUyS/9/
下面是我用綁定的變化行動的最後添加的組合代碼:
$('select[name=cboincomeaccount_' + newRowIndex + ']').bind("change", {
combo: $(this)
}, handler);
function handler(event) {
newRowIndex++;
var combo = jQuery(this);
var row = combo.parent().parent();
appViewModel.addRow();
// Unbind
combo.unbind('change');
// Bind new combo
jQuery('select[name=cboincomeaccount_' + newRowIndex + ']').bind("change", {
combo: jQuery(this)
}, handler)
jQuery(row).find('input[name^="txtincmonth"]').removeAttr('disabled');
};
在此先感謝!
任何不使用Knockout聲明式綁定change事件的理由?例如。 這樣它總是呈現並連線起來,並且在處理程序中,您可以根據它是新行還是更改行來應用邏輯。 –
你的新行有空輸入的原因是因爲在你的addRow函數中,你正在執行'self.budgetDetails.push(新BudgetDetail(bDetails))',傳遞bDetails *數組*而不是裏面的對象。所以把這個bDetails改爲bDetails [0],對於這個例子 – antishok
@TomHall你有沒有關於如何設置數據提示聲明的事件改變的示例? – VAAA