我有一个包含两个字段的表:日和小时,但只有天字段值,或许它是一个淘汰的bug或者我不能理解的一些奇怪的东西。
这是视图(jade而不是html):
p
label(for='dates') Datas
span.required *
 
span(data-bind='visible: dates().length > 1')
ul#list-dates(data-bind='foreach: dates()')
li
div.form-inline
input.input-small(type='text', name='dateDay', data-bind='value: day, hasfocus: true')
span -
input.input-mini(type='text', name='dateHour', date-bind='value: hour')
a.btn(href='#', data-bind='click: $root.addDate')
i.icon-plus
这是javascript:
var DateModel = function(day, hour) {
var self = this;
self.day = ko.observable(day);
self.hour = ko.observable(hour);
};
function DateViewModel() {
var self = this;
self.dates = ko.observableArray([
new DateModel("", "")
]);
self.addDate = function() {
var pos = self.dates().length;
pos = pos-1;
console.log("Day: " + self.dates()[pos].day());
console.log("Hour: " + self.dates()[pos].hour());
if (self.dates()[pos].day() != '' && self.dates()[pos].hour() != '')
self.dates.push(new DateModel("", ""));
}
}
ko.applyBindings(new DateViewModel());
当按下addDate时,它会假设检查之前添加的日期和小时条目以创建新字段。谢谢!
答案 0 :(得分:2)
您的“小时”绑定无效,因为您错过了 data-bind
属性。
你有:
input.input-mini(type='text', name='dateHour', date-bind='value: hour')
哪个应该是
input.input-mini(type='text', name='dateHour', data-bind='value: hour')