gpt4 book ai didi

javascript - Knockout JS - 将函数名称与数组值连接起来

转载 作者:行者123 更新时间:2023-11-30 16:09:04 25 4
gpt4 key购买 nike

我有以下代码:

查看:

<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="checked: $parent.schedule().Friday这部分的data-bind应该调用当前的函数名schedule 模型中的 >dayOfWeek(在这个硬编码示例中,Frid​​ay - 在这一天按预期工作)。但是,data-bind ="checked: $parent.schedule().dayOfWeekschedule 模型中调用函数 dayOfWeek 这不是我想要的。我尝试执行以下操作:

查看

检查:$parent.getCurrentDay(dayOfWeek)

型号:

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 返回的是一个字符串:checked: $parent.schedule().Monday

如果有任何帮助,我将不胜感激!

最佳答案

听起来你想要括号符号:

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

或者如果 dayOfWeek 是可观察的(它在您的代码中看起来不像,但是)

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

正如您所指出的,.dayOfWeek 寻找一个实际名为 dayOfWeek 的属性。 [dayOfWeek] 获取变量 dayOfWeek 的值(例如,“Friday” 或类似的),然后查找具有该名称的属性。

关于javascript - Knockout JS - 将函数名称与数组值连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36550961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com