2016-04-11 29 views
1

ben aşağıdaki kod parçası var:Nakavt JS - Dizi değeri ile concatenate fonksiyon adı

GÖRÜNÜM: bu bölümünde

<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-binddata-bind="checked: $parent.schedule().Friday çağırmalıdır Adını fonksiyonudur Geçerli dayOfWeek (bu sabit kod örnekte Friday - bu belirli günde beklenen şekilde çalışır) schedule modelinde. Bununla birlikte, schedule modelinde numaralı dayOfWeek numaralı çağrı fonksiyonuna sahip olmak istiyorum. Ben aşağıdakileri yaparak çalıştı:

VIEW

checked: $parent.getCurrentDay(dayOfWeek)

MODEL: checked: $parent.schedule().Monday vb

:

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; 

}

Ama döndü data-bind sonra bir dizedir

Ben woul d herhangi bir yardım için çok teşekkür ederiz! dayOfWeek gözlemlenebilir ise (sizin kodda bunun gibi görünmüyor, ama)

data-bind="checked: $parent.schedule()[dayOfWeek]" 

veya

data-bind="checked: $parent.schedule()[dayOfWeek()]" 

Eğer işaret ettiğimiz gibi: Eğer parantez notasyonu istedikleri gibi

cevap

2

Sesler , .dayOfWeek, aslında dayOfWeek olarak adlandırılan bir özelliği arar. [dayOfWeek], dayOfWeek değişkeninin değerini alır (ör. "Friday" veya benzeri) ve daha sonra özelliği bu isimle birlikte arar.

+1

Çok teşekkürler TJ! Bir çekicilik gibi çalışır. Gerçekten de gözlemlenebilir değil, bu yüzden ilk çözüm kullandığım. Cevabınızı birkaç dakika içinde kabul ediyorum :) – Pawel