关于json:淘汰applyBindings不applyBinding | 珊瑚贝

Knockout applyBindings does not applyBinding


我刚开始使用 knockout.js,在尝试显示 JSON 数据时卡住了。

我的 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 的更多信息。

  • 它现在完美运行!但是为什么当 Alert() 被放置在那里时,它的任务是错误的呢?
  • 谢谢;这对我来说绝对是必须的。


来源:https://www.codenong.com/21967590/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?