とCONCATENATE関数名Iは、次のコードを持っている:ノックアウトJS - 配列値
VIEW:この部分data-bind="checked: $parent.schedule().Friday
で
<div class="form-group days-of-week">
<!-- ko foreach: $root.daysOfWeek --> // array of week days
<label class="col-sm-2 control-label" data-bind="text: dayOfWeek"></label> // 'dayOfWeek' being week day name, e.g. Monday, Tuesday etc.
<div class="col-sm-10 description">
<input type="hidden" value="0" data-bind="attr: { name: 'ScheduledRequest[DayOfWeek][' + dayOfWeek + ']' }" />
<input type="checkbox" data-bind="checked: $parent.schedule().Friday, value: 1, attr: { name: 'ScheduledRequest[DayOfWeek][' + dayOfWeek + ']' }" class="form-control" />
</div>
<!-- /ko -->
data-bind
は、その名前で関数を呼び出す必要があります現在のdayOfWeek
(このハードコードされた例では、Friday
- この特定の日に予想どおりに機能します)のschedule
モデルです。ただし、 schedule
のモデルでは電話機能がdayOfWeek
で、私は欲しいものではありません。私は、次のやってみました:
VIEW
をchecked: $parent.getCurrentDay(dayOfWeek)
MODEL:checked: $parent.schedule().Monday
など
self.getCurrentDay = function(day) {
var dayOfWeek = "";
if(day == 'Monday')
dayOfWeek = '$parent.schedule().Monday';
if(day == 'Tuesday')
dayOfWeek = '$parent.schedule().Tuesday';
if(day == 'Wednesday')
dayOfWeek = '$parent.schedule().Wednesday';
if(day == 'Thursday')
dayOfWeek = '$parent.schedule().Thursday';
if(day == 'Friday')
dayOfWeek = '$parent.schedule().Friday';
if(day == 'Saturday')
dayOfWeek = '$parent.schedule().Saturday';
if(day == 'Sunday')
dayOfWeek = '$parent.schedule().Sunday';
return dayOfWeek;
}
しかし、返さdata-bind
は、文字列であります
I woulどんな助けにも大いに感謝しています!
ありがとうTJ!それは魅力のように働く。確かにそれは観測可能ではないので、最初の解決策は私が使用したものです。私はあなたの答えを数分で受け入れるだろう:) – Pawel