【发布时间】:2017-10-24 12:55:47
【问题描述】:
我对 KnockoutJS 还是比较陌生,我遇到了绑定问题,看不出哪里出了问题。我尝试了各种方法,但似乎没有任何效果。我确信可能有一个简单的解决方案,我只是看不到它!
我正在通过 ajax 调用数据并尝试从文本框中的数据中显示一项,然后可以对其进行更新。我在控制台中收到以下错误:
Uncaught ReferenceError: Unable to process binding "with: function (){return KHAViewModel }“消息:无法处理绑定”与: function (){return fundedWTEResults }" 消息:无法处理 绑定“textInput:函数(){return ActualFundedWTE}”消息: ActualFundedWTE 未定义
下面是我的代码的精简版,我用一些 JS 复制了我的 ajax 脚本。我也在jsFiddle上复制了它:
HTML
<div class="container">
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
</div>
<div class="container" id="dateSearch" >
<h2></h2>
<form class="form-inline" data-bind="with: KHAViewModel">
<div class="form-group" data-bind="with: fundedWTEResults">
<span>Funded WTE: </span>
<input id="fundedWTE" data-bind="textInput: ActualFundedWTE">
</div>
</form>
</div>
JS
// KHA View Model
function KHAViewModel() {
var self = this;
self.fundedWTEResults = ko.observableArray([]);
function fundedWTE (team) {
// $.ajax({
// url: "/...",
// type: "POST",
// ...........
// });
var r = [{"Team":team,"ActualFundedWTE":12.00}];
ko.mapping.fromJS(r, {}, self.fundedWTEResults);
}
fundedWTE('TeamA');
}
// Master View Model
function masterVM() {
var self = this;
self.KHAViewModel = new KHAViewModel();
};
// Activate Knockout
ko.applyBindings(new masterVM());
【问题讨论】:
-
我认为
with: fundedWTEResults绑定应该是foreach: fundedWTEResults绑定,因为它是一个数组... -
就是这样!谢谢!
-
@user3297291 你想留下答案吗?或者我可以回答。
-
感谢您给我机会添加答案,但我同意您添加自己的答案,因为这是一个小问题 :)
标签: javascript jquery html knockout.js knockout-mapping-plugin