0

这是示例代码 knockout.js:

<h2>Your seat reservations</h2>

<table>
    <thead><tr>
        <th>Passenger name</th><th>Meal</th><th>Surcharge</th><th></th>
    </tr></thead>
    <tbody data-bind="foreach: seats">
    <tr>
        <td data-bind="text: name"></td>
        <td data-bind="text: meal().mealName"></td>
        <td data-bind="text: meal().price"></td>
    </tr>    
</tbody>
    <tbody><button data-bind="click: addSeat">Reserve another seat</button></tbody>
</table>

js:

// Class to represent a row in the seat reservations grid
function SeatReservation(name, initialMeal) {
    var self = this;
    self.name = name;
    self.meal = ko.observable(initialMeal);
}

// Overall viewmodel for this screen, along with initial state
function ReservationsViewModel() {
    var self = this;

    // Non-editable catalog data - would come from the server
    self.availableMeals = [
        { mealName: "Standard (sandwich)", price: 0 },
        { mealName: "Premium (lobster)", price: 34.95 },
        { mealName: "Ultimate (whole zebra)", price: 290 }
    ];    

    // Editable data
    self.seats = ko.observableArray([
        new SeatReservation("Steve", self.availableMeals[0]),
        new SeatReservation("Bert", self.availableMeals[1])
    ]);

    self.addSeat = function() {
        self.seats.push(new SeatReservation("12321", self.availableMeals[0]));
    }
}

ko.applyBindings(new ReservationsViewModel());

此代码适用于添加列。但我需要列,有可能吗?

4

1 回答 1

1

在 ReservationViewModel 中添加以下行并将您的标题替换为下面的 html 部分

self.Columns = ko.observableArray([{ ColumnName: "Header1" }, { ColumnName: "Header2"}]);


 <tr data-bind="foreach: Columns">
            <th data-bind="text: ColumnName>
                Passenger name
            </th>
        </tr>

希望对你有帮助

于 2012-12-27T09:12:39.857 回答