Knockout.js 查看模型赢得';在淘汰赛中不能更新

Knockout.js 查看模型赢得';在淘汰赛中不能更新,knockout.js,Knockout.js,我熟悉React,但不太熟悉Knockout。我希望一旦我给一个可观察的物体赋值,它会立即被反映出来。。。但出于某种原因,这并没有发生 <span data-bind="text: myMessage"></span> <script> var viewModel; $.ajax({ url: "/api/document/", dataType: "json",

我熟悉React,但不太熟悉Knockout。我希望一旦我给一个可观察的物体赋值,它会立即被反映出来。。。但出于某种原因,这并没有发生

<span data-bind="text: myMessage"></span>

 <script>
        var viewModel;

        $.ajax({
            url: "/api/document/",
            dataType: "json",
            method: "GET"
        }).done(function (data) {
            viewModel = {
                myMessage: ko.observable()
            };

            viewModel.myMessage(data[0].Name);
        }).fail(function() {
            alert("something totally awful just happened.");
        });

    </script>

var模型;
$.ajax({
url:“/api/document/”,
数据类型:“json”,
方法:“获取”
}).完成(功能(数据){
视图模型={
myMessage:ko.observable()
};
viewModel.myMessage(数据[0].Name);
}).fail(函数(){
警惕(“刚刚发生了一件非常可怕的事情。”);
});

这个ajax调用返回一个文本字符串,我已经确认它工作正常。页面上没有显示span有什么原因吗

缺少
ko.applyBindings(viewModel)


var模型;
$.ajax({
url:“/api/document/”,
数据类型:“json”,
方法:“获取”
}).完成(功能(数据){
视图模型={
myMessage:ko.observable()
};
viewModel.myMessage(数据[0].Name);
应用绑定(视图模型);
}).fail(函数(){
警惕(“刚刚发生了一件非常可怕的事情。”);
});

您需要创建一次视图模型,将其应用于DOM,并在AJAX调用中进行更新:

<span data-bind="text: myMessage"></span>

 <script>
        var viewModel =  {
            myMessage: ko.observable()
        };
        ko.applyBindings(viewModel);

        $.ajax({
            url: "/api/document/",
            dataType: "json",
            method: "GET"
        }).done(function (data) {
            viewModel.myMessage(data[0].Name);
        }).fail(function() {
            alert("something totally awful just happened.");
        });

    </script>

var viewModel={
myMessage:ko.observable()
};
应用绑定(视图模型);
$.ajax({
url:“/api/document/”,
数据类型:“json”,
方法:“获取”
}).完成(功能(数据){
viewModel.myMessage(数据[0].Name);
}).fail(函数(){
警惕(“刚刚发生了一件非常可怕的事情。”);
});

这是一种浪费,在随后的多个AJAX调用中无法工作。谢谢,我将在7分钟内接受。我没有真正阅读文档就直接跳了进去,我想,谢谢你,我确实觉得很懒:)
<span data-bind="text: myMessage"></span>

 <script>
        var viewModel =  {
            myMessage: ko.observable()
        };
        ko.applyBindings(viewModel);

        $.ajax({
            url: "/api/document/",
            dataType: "json",
            method: "GET"
        }).done(function (data) {
            viewModel.myMessage(data[0].Name);
        }).fail(function() {
            alert("something totally awful just happened.");
        });

    </script>