【发布时间】:2012-05-18 14:02:52
【问题描述】:
我已经设置了一个这样的视图模型:
function viewModel() {
var self = this;
self.voteOnItem = function (sender, e) { .. }
.
.
}
var model = new viewModel();
ko.applyBindings(model);
在我看来,我在模板中有这个:
<script type="text/html" id="X">
<ul id="" data-bind="foreach:items">
<li>
<div style="float:left;">
<form action='Url' method="post" data-bind="submit:$parent.voteOnItem">
.
.
我收到一个错误“提交绑定的值必须是一个函数”,以便映射到 voteOnItem,但 voteOnItem 显然是一个函数...知道为什么会出现错误吗?
【问题讨论】:
-
我会确保您在进行提交绑定时处于正确的范围内。你得到的错误是当
$parent没有voteOnItem属性时你会看到的(就像你放$parent.blah一样)。一个简单的查看方法是在您的绑定附近放置一个<div data-bind="text: ko.toJSON($parent)"></div>以查看该级别的数据。要验证的另一件事是您已关闭所有标签并且没有使用任何错误的自关闭标签,例如<span /> -
我会尝试 JSON 技巧...谢谢。
-
@RPNiemeyer 就是这样,非常感谢!如果需要,请将您的答案复制到帖子中,我将其标记为答案。
标签: javascript mvvm knockout.js knockout-2.0