我的观点中有以下内容:
<div data-bind='foreach: providers'>
<div data-bind='text: name'></div>
<button data-bind='click: model.addToCart'>Show</button>
<table class="table">
<thead>
<th style="width: 300px">Name</th>
<th>Price</th>
<th></th>
</thead>
<tbody data-bind='foreach: items'>
<tr>
<td data-bind='text: name'></td>
<td data-bind='text: price'></td>
<td>
<input type="button" data-bind='click: model.add' value="Add">
</td>
</tr>
</tbody>
</table>
</div>
以下在我的模型中:
function model() {
var self = this;
self.providers = data; //some random array data
self.addToCart = function(place) {
console.log(place);
}
};
我在Knockout.js中使用了正常的click
绑定。
当我运行代码时,似乎甚至没有调用addToCart函数。我没有从console.log()
得到任何值的输出。
我错过了什么?我是初学者。请帮忙。
答案 0 :(得分:2)
进入foreach
循环后,您的范围就是您当前正在迭代的对象。因此,要引用父或根范围中的函数,您将不得不使用$root
(尽管$parent
在这种情况下是相同的):
<button data-bind='click: $root.addToCart'>Show</button>
答案 1 :(得分:1)
您的父视图模型应该
cf login
然后在你的foreach循环中你可以使用
setPageFormat(width, height, orientation);