我坚持什么必须是一个简单的解决。 我使用嵌套的视图模型knockout.js,一切似乎只是我的删除功能不能正常工作的罚款。 这似乎是正确的约束力,但它是不会触发,当我点击删除。
为什么嵌套视图模型? 说来话长,但基本上很多东西需要是在一个页面上!
因此,这里的代码:
HTML
<section class="mini-form-container">
<form data-bind="submit: repeatGuest.addDate">
<input type="date" data-bind="value: repeatGuest.previousStay"/>
<button type="submit" class="button-secondary ">Add date</button>
</form>
<div data-bind="foreach: repeatGuest.dates, visible: repeatGuest.dates().length > 0">
<div>
<input data-bind="value: date" disabled="disabled" />
<a data-bind="click: $parent.removeDate">Remove</a>
</div>
</div>
</section>
<section>
<div data-bind="text: ko.toJSON($data)"></div>
</section>
使用Javascript
function RepeatGuest() {
/// <summary>Child View Model</summary>
this.dates = ko.observableArray();
this.previousStay = ko.observable();
}
RepeatGuest.prototype.addDate = function () {
var self = this.repeatGuest;
if (self.previousStay()) {
self.dates.push({
date: self.previousStay()
});
}
};
RepeatGuest.prototype.removeDate = function (date) {
this.dates.remove(date);
}
function ViewModel() {
var self = this;
self.repeatGuest = new RepeatGuest();
}
ko.applyBindings(new ViewModel());
这里是我的小提琴: http://jsfiddle.net/6Px4M/2/
那么,为什么不是我的删除功能被炒鱿鱼吗?
可能的副作用问题:嵌套视图模型采取淘汰赛走错了路,也似乎没有在这么多信息?