del*_*xfe 8 javascript knockout.js
编辑:问题与绑定无关,而是与一个简单的JavaScript错误有关.
我有一个关于foreach绑定中的点击绑定的问题.我有一个列表,其中的项目显示一个下拉框,用于从主数据中选择一个值.可以在该列表中添加和删除项目.删除项目的按钮嵌套在foreach绑定中.因此我希望我应该用$ parent绑定它
<button data-bind="click: $parent.removeNumber">-</button>
Run Code Online (Sandbox Code Playgroud)
这不起作用.但以下版本有效:
<button data-bind="click: removeNumber">-</button>
Run Code Online (Sandbox Code Playgroud)
我不懂为什么.
代码:
<h2>numbers:</h2>
<ul data-bind="foreach: numbers">
<li>
<select data-bind="value: id,
options: masterData,
optionsText: 'caption',
optionsValue: 'id'"></select>
<br />
value: <span data-bind="text: id"></span>
<br />
<button data-bind="click: $parent.removeNumber">-</button>
</li>
</ul>
<button data-bind="click: addNumber">+</button>
Run Code Online (Sandbox Code Playgroud)
function ViewModel() {
self.masterData = [{ id: 1, caption: "One"},
{ id: 2, caption: "Two"}];
self.numbers = ko.observableArray([{
id: ko.observable(2)}]);
self.addNumber = function() {
self.numbers.push({
id: ko.observable(2)
});
};
self.removeNumber = function(item) {
self.numbers.destroy(item);
console.log("removed" + item);
};
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);?
Run Code Online (Sandbox Code Playgroud)
我创造了一个小提琴(不工作的版本):http: //jsfiddle.net/delixfe/NWWH8/
谢谢你的帮助.
Kye*_*ica 10
你有我一秒钟!
你是对的,$parent应该是必需的.你的错误没有self在你的viewmodel中定义.这样做之后,$parentremoveButton以及masterData绑定都需要.
这是一个工作小提琴:http://jsfiddle.net/FpSWb/
| 归档时间: |
|
| 查看次数: |
15620 次 |
| 最近记录: |