Knockout JS Ajax调用jsonp没有填充可观察数组

时间:2013-08-13 09:52:49

标签: jquery knockout.js single-page-application

在页面加载事件之后,如果在下拉列表中更改值,则它会成功显示警报并进行jquery ajax调用以从WebApi返回数据。但数据并不对UL有约束力。下面是代码。

<ul data-role="listview" data-divider-theme="b" data-inset="true" data-bind="foreach: Contacts" style="margin-top:-17px;">
 <li data-theme="c">
 <a href="#page1" data-transition="slide" data-bind="attr: { title: ContactID }">
 <span data-bind="text: FirstName + ' ' + LastName ')'"></span>
 </a>
 </li>
</ul>
function StrikeAppViewModel() {
    var self = this;

    self.Contacts = ko.observableArray();

        self.SearchContacts = function () {
        alert("Onchange event is fired");                  
        $.ajax({
            url: 'http://localhost:50043/api/Contacts',
            type: 'GET',
            dataType: 'jsonp',
            context: this,
            success: function (result) {
                debugger;
                self.Contacts($.parseJSON(result));
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(errorThrown);
            }
        });         
    }
   };

我不知道为什么数据没有绑定到ul.It在网页中没有显示任何错误。

请告诉我错误的地方。

1 个答案:

答案 0 :(得分:1)

请重新写这一行。然后它会正常工作

  self.Contacts(result);