Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 敲除:foreach数据不显示在HTML中_Javascript_Jquery_Html_Knockout.js - Fatal编程技术网

Javascript 敲除:foreach数据不显示在HTML中

Javascript 敲除:foreach数据不显示在HTML中,javascript,jquery,html,knockout.js,Javascript,Jquery,Html,Knockout.js,我想在html中显示多维可观察数组数据。但是,我没有得到输出 我的代码: <!-- ko if: ($parent.cust_opt_avail() === 1) --> <!-- ko foreach: $parent.customVal() --> <div class="product-custom-option-select"> <p class="options-label" data-bind="text:key"></p

我想在html中显示多维可观察数组数据。但是,我没有得到输出

我的代码:

<!-- ko if: ($parent.cust_opt_avail() === 1) -->
<!-- ko foreach: $parent.customVal() -->
<div class="product-custom-option-select">
    <p class="options-label" data-bind="text:key"></p>
    <p class="options-label" data-bind="text:custom_option_select_text"></p>
</div>
<!-- /ko -->
<!-- /ko -->

cust\u opt\u avail()是可观察变量。 customVal是可观测阵列

customVal的输出为:

我想显示自定义\u选项\u选择\u文本并在第一个p标签上显示名称

怎么做

预期结果:


请帮帮我。

有趣的问题!因此,您希望通过
customVal()
执行for循环,但是
customVal()
本身有数组。在这种情况下,了解敲除非常有用。尤其是
$data
。您可以将其用作当前上下文的引用,而不必担心颜色和大小等名称

使用
$data
作为颜色和大小数组的占位符后,也要对它们执行for循环。我创建了一个片段:

var viewmodel=function(){
var self=这个;
self.cust_opt_avail=ko.可观察(1);
var Color=[{'custom_option_select_text':'Red+$200.00'},
{'custom_option_select_text':'Green+$250.00'}];
变量大小={'custom_option_select_text':'XL+$150.00'};
var customValArray=[颜色,大小];
self.customVal=ko.observearray(customValArray);
};
应用绑定(新的viewmodel())

根据您在这个问题上的回答和评论,我推测您正在将一个对象设置为
ko.observearray()
。这是不对的。您应该将
customVal
设置为
ko.observable()
。然后在
foreach
绑定中使用

var viewmodel=function(){
var self=这个;
self.cust_opt_avail=ko.可观察(1);
设customVal={
颜色:[{'custom_option_select_text':'Red+$200.00'},
{'custom_option_select_text':'Green+$250.00'}],
大小:{'custom_option_select_text':'XL+$150.00'}
};
//这应该是一个可观察的结果
self.customVal=ko.可观察(customVal);
};
应用绑定(新的viewmodel())


try
ko foreach:$parent.customVal().Color
但是,我想获得颜色和大小两个自定义选项选择文本值。Hello@aseferov。你们发现什么了吗?正如你们看到的我的预期结果,若尺寸数据得到,那个么尺寸数据显示,然后所有的颜色值显示等等。你们能像那个样剪掉吗?嘿,雷,你们检查我的代码了吗?如果我写这行,它就不起作用了。但是,如果我写的话,我可以得到颜色元素的数据。我哪里做错了什么?请参阅我更新的代码片段。。不可能像您所希望的那样使用键,因为数组不使用自定义键名存储值。它们只按索引存储。我已经看到了您在中所做的操作,但是如果您看到customVal数组的大小,我认为它将是0,即使其中包含大小和颜色。No No bro。我可以这样设置自定义键值:self.customVal()['Size]=array\u value;不过,让我试着回答你的问题。如果您得到了预期的解决方案,请更新代码段。我已经尝试过这个self.customVal()['Size]=array\u值。之后,如果执行console.log(self.customVal().length),它将显示为0。将元素添加到数组中不是正确的方法。这就是向对象添加属性的方式。因为数组是一种对象类型。For loop不适用于此。嘿,阿迪加。这个片段看起来很完美。但是,customVal如何使其动态化?因为,你可以看到我用彩色推送数据。在可观察的情况下,是否可以这样做?像ko可观测数组一样?如何像let customVal一样制作动态数组?你能帮帮我吗?@KevalMehta这似乎是一个完全不同的问题。以前工作的东西现在必须使用
ko.observable
。除非您添加了一些变通方法,以使
ko.obsrvableArray()
与对象一起工作。你说的“动态”到底是什么意思?无论何时将另一个对象推送到
customVal()['Color']
,它都不会反映在UI中?实际上,初始化时customVal()为空。现在,当我检查radio时,Size元素应该创建并添加适当的值。然后,我选中了2个复选框。所以,那个时候应该创建颜色元素并添加适当的值。我现在就创建了。var customVal={}。现在,如何在这方面推动价值?我喜欢customVal.push(值)或customVal.Size.push(值),它总是返回push不起作用。