Knockout applyBindings does not applyBinding
我刚开始使用
我的 HTML 是
1 2 | <p>Dealer Location: <input id="dealerlocation" data-bind="value: DealerLocation" /></p> <p>Contact Report Date: <input id="crdate" data-bind="value: CRDate" /></p> |
我的脚本块是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | function viewAction() { var self = this; self.DealerLocation = ko.observable(""); self.CRDate = ko.observable(""); }; var viewActionModel = new viewAction(); function GetActionByID() { $.ajax({ type:"POST", url:"/ws/someservice.asmx/GetAction", data:"{pacid: '" + $('input[id$=hidActionID]').val() +"'}", contentType:"application/json;charset=utf-8", dataType:"json", success: function (response) { var action = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d; $.each(action, function (index, axn) { viewActionModel.DealerLocation = axn.DealerLocation; viewActionModel.CRDate = axn.CRDate; }); } }); } $(document).ready(function () { GetActionByID(); //alert(viewActionModel.DealerLocation); ko.applyBindings(viewActionModel); }); |
注意:如果我取消注释警报,则 applyBinding 有效,否则无效。
这里缺少什么???
拉加兹。
这是分配 observables 的错误方法。
1 2 | viewActionModel.DealerLocation = axn.DealerLocation; viewActionModel.CRDate = axn.CRDate; |
这样做。
1 2 | viewActionModel.DealerLocation(axn.DealerLocation); viewActionModel.CRDate(axn.CRDate); |
通过做你现在所做的,你正在用常规变量替换 observables。它正在使用警报,因为此替换发生在绑定和淘汰赛刚刚拾取您的常规变量之前。阅读有关 observables 的更多信息。