我有一个表添加一个新的预算细节,如下面的图片: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