試圖學習和集成Knockout到ASP.NET Core應用程序。這是最遠的,我已經能夠按照不同的職位,以獲得:Foreach只重複最後一個元素
function DayViewModel(number, name /*others*/)
{
this.dayNumber = number;
this.dayName = name;
//others
}
var MonthViewModel = function(days /*others*/)
{
this.monthDays = ko.observableArray(days);
}
$(function()
{
var tempDays = [];
@foreach(var day in Model.Days)
{
string dayName = day.DayNumber.ToString().PadLeft(2, '0') + " - " + Globals.GetDayName(Model.YearNumber, Model.MonthNumber, day.DayNumber, Globals.GetUICulture(Context));
@:tempDays.push(DayViewModel(@day.DayNumber, "@dayName" /*others*/);
}
var monthViewModel = new MonthViewModel(tempDays /*others*/);
ko.applyBindings(monthViewModel);
});
然後,表:
<table id="mTable" class="table">
<thead>
<tr>
<th>@Html.DisplayNameFor(model => newModel.DayNumber)</th>
</tr>
</thead>
<tbody data-bind="foreach: monthDays">
<tr>
<td>
<a href="#" data-bind="text: dayName"></a>
</td>
</tr>
</tbody>
</table>
這正確生成一個<tr>
元素的數組中的相同數量的項目,並且生成的HTML顯示tempDays
包含所有正確的項目。
爲什麼Knockout只重複最後一個元素呢?我在文檔中無法找到的錯誤是什麼?
非常感謝,我覺得自己像一個noob。它工作完美 –