我已经遇到了这样一种情况:我在一个语句中创建并填充javascript对象,无论如何,我可能会使用另一种方法,但我觉得有趣的是知道这是否可以实现。
主要原因是,这个赋值必须在我不能使用javascript if语句的上下文中发生,所以我不得不使用三个参数语句(?:)(抱歉我的英文在这里,我打赌这不是这个名字。)。
所以,有了这个:
<!-- ko foreach: someArray-->
<Input Type="Text" data-bind="value: ( $root.something() ? ['Some Values'][model.index]:'No value' )">
<!-- /ko -->
其中model.index是一个整数属性,对应于与生成的-via php-数组相关的值。
如前所述,我想我会将这两个参数(索引和值)传递给另一个model.function并创建我需要的索引对象,但知道是否有办法做某种方式特别有趣像:
(((($a={})[0]="Wow, i belong to '$a'")[1]="Yeah!, me too")[2]="But this does not behave as expected ;(")
提前致谢,对不起我的英语。
答案 0 :(得分:1)
它仅适用于此部分($a={})[0]="Wow, i belong to '$a'"
因为它返回的字符串不是对象,所以你不能(..)[1]
到它
这也不是一个好习惯。
您可以像
一样创建内联object
$a = { 0: "Wow, i belong to '$a'", 1: "Yeah!, me too", 2: "Now me too" }
并使用索引
($a = { 0: "Wow, i belong to '$a'", 1: "Yeah!, me too", 2: "Now me too" })[model.index]
或强>
内联array
(更适合您的情况)
($a = ["Wow, i belong to '$a'", "Yeah!, me too", "Now me too"])[model.index]
答案 1 :(得分:0)
我真的想过@JAG的回答,但试着这样做我得到了这个错误,这是否有合理的解释?
(很抱歉使用了答案功能,但评论不能包含图片)
(Chrome控制台)最新版本,Windows 7。