Knockout js无法使用observableArray绑定数据

时间:2015-06-22 11:07:35

标签: knockout.js asp.net-mvc-5

我正在尝试显示数据库中的所有员工,但我无法实现它。

我的JS,

var EmployeeKoViewModel = function () {
    var self = this;
    self.EmpId = ko.observable("");
    self.Name = ko.observable("");
    self.City = ko.observable("");
    self.Employees = ko.observableArray([]);
    GetEmployees();
    function GetEmployees() {
        $.ajax({
            type: "GET",
            url: "/Employee/About",
        }).done(function (data) {

            self.Employees.push(data);


        }).error(function (ex) {
            alert("Error");
        });
    }


}
$(document).ready(function myfunction() {
    ko.applyBindings(new EmployeeKoViewModel());
})

我的观点,

<form>
    <table>
        <tr>

            <td>
                <div class="FixedContainer">
                    <table data-bind="visible:  Employees().length>0" style="border: double">
                        <thead>
                            <tr>
                                <td>EmpId</td>
                                <td>Name</td>
                                <td>City</td>

                                <td></td>
                            </tr>
                        </thead>
                        <tbody data-bind="foreach:  Employees">
                            <tr>
                                <td data-bind="text: EmpId"></td>
                                <td data-bind="text: Name"></td>
                                <td data-bind="text: City"></td>

                            </tr>


                        </tbody>
                    </table>
                </div>
            </td>
        </tr>
    </table>
</form>

UI中没有显示数据。我在浏览器中检查过控制台但没有错误。

你能指导我做错的地方吗。

data
[
ObjectCity: "Hyderabad"
EmpId: 1Name: "Vivek"
__proto__: Object
]

1 个答案:

答案 0 :(得分:3)

self.Employees.push(data);应为self.Employees(data);