是否可以获得属性的相关输入?将模型添加到数组后,我需要关注输入:
var newItem = new ChildModel();
this.childItems.push(newItem);
// and then something like this:
newItem.observableProperty.focusInput();
是否可以获得属性的相关输入?将模型添加到数组后,我需要关注输入:
var newItem = new ChildModel();
this.childItems.push(newItem);
// and then something like this:
newItem.observableProperty.focusInput();
你可以看看hasfocus
绑定。如果您愿意为您添加一个selected
属性,您ChildModel
可以执行以下操作:http: //jsfiddle.net/jearles/sZnbU/
当我将一个项目推入可观察数组时,我将其selected
属性设置为true
. 这使它成为焦点。每行还有一个Select
按钮让您选择它。
当我添加一个新项目时,我会记录这些项目,以便您可以看到selected
属性的变化。最后,如果您单击输入文本框,使其获得焦点,然后单击Log
,您将看不到“选定”项目。
--
<span>
New Item: <input data-bind="value:newItem" />
<button data-bind="click: addItem">Add</button>
<button data-bind="click: logItems">Log</button>
</span>
<div data-bind="foreach: items">
<p>
<input data-bind="value: text, hasfocus: selected" />
<button data-bind="click: selectItem">Select</button>
</p>
</div>
--
var ChildItem = function(text) {
var self = this;
self.text = ko.observable(text);
self.selected = ko.observable(true);
self.selectItem = function() {
self.selected(true);
}
};
var ViewModel = function() {
var self = this;
self.items = ko.observableArray();
self.newItem = ko.observable('');
self.addItem = function() {
if (self.newItem().length > 0) {
self.items.push(new ChildItem(self.newItem()));
self.newItem('');
self.logItems();
}
};
self.logItems = function() {
console.log(ko.toJSON(self.items));
}
}
ko.applyBindings(new ViewModel());
</p>