KnockoutJs将JSON映射到viewmodel

时间:2012-12-05 22:27:22

标签: asp.net knockout.js

我遇到了将ASP.net webform webapi中的JSON绑定到带有KnockoutJs的viewmodel的问题。 wepapi和映射到mappedQuickEntries没有问题。

我在哪里弄错了?感谢。

错误:

  

错误:无法解析绑定。   消息:ReferenceError:未定义ItemPartNumb;   绑定值:value:ItemPartNumb

查看:

<div>    
<table border="1" cellpadding="0" cellspacing="0">
 <tbody data-bind="foreach: quickEntries">
   <tr>
        <td data-bind="value: ItemPartNumb"></td>
        <td data-bind="value: ItemDescription"></td>     
    </tr>
 </tbody>
</table>

视图模型:

<script type="text/javascript">

var QuickEntry = function(_itemPartNumb, _itemDescription) {    
    this.ItemPartNumber = ko.observable(_itemPartNumb);
    this.ItemDescription = ko.observable(_itemDescription);        
};

function QuickEntriesViewModel () {        

    var self = this;
    self.quickEntries = ko.observableArray([]);

    $.ajax({
        url: '/DesktopModules/Blah/API/Data/GetTenQuickEntries',
        type: 'GET',
        dataType: 'json',
        success: function (data) {                
            var mappedQuickEntries = $.map(data, function (item) {
                return new QuickEntry(item.ItemPartNumb, item.ItemDescription);
            });

            self.quickEntries(mappedQuickEntries);              
        },
        statusCode: {
            404: function () {
                alert('Failed');
            }
        }
    });
};

ko.applyBindings(new QuickEntriesViewModel());    

1 个答案:

答案 0 :(得分:2)

ItemPartNumb vs ItemPartNumber

您正在使用value - 绑定而不是text - 绑定。

http://jsfiddle.net/MizardX/9sqvk/