【问题标题】:Flex 3: Passing Array to Custom ComponentFlex 3:将数组传递给自定义组件
【发布时间】:2009-10-18 07:21:09
【问题描述】:

我创建了一个自定义按钮组件,它接受一个数组作为属性。 我将属性设置如下:

titleDims="[{Month: comboBox1.text, Year:comboBox2.text, Sales Order:comboBox3.text}]"

我收到以下错误:

"1084: Syntax error: expecting rightparen before colon."

数组语法有问题吗?

【问题讨论】:

  • 为什么在数组声明周围有引号?
  • 我认为在将参数传递给自定义组件时必须这样做
  • 自定义组件需要字符串还是数组?这不是 json 表示法吗?
  • 我可能是错的,但我认为 Ivan 想在 MXML 中设置一个属性,所以需要引号。 Ivan,以后请说明您是在谈论 ActionScript 还是 MXML,因为从上下文中判断并不总是那么容易。
  • 是的。好点子。我试图在 MXML 而不是 Actionscript 中执行此操作。

标签: apache-flex


【解决方案1】:

你的问题是你的格式。让我们分解一下:

titleDims = [{
    Month: comboBox1.text,
    Year:comboBox2.text,
    Sales Order:comboBox3.text // Whoops! There's a space here!
}]

我建议改为SalesOrder

如果您真的在键中需要空格,您可以这样做:

titleDims = [{
    'Month': comboBox1.text,
    'Year': comboBox2.text,
    'Sales Order': comboBox3.text
}]

【讨论】:

  • +1 但有趣的是,您可以在变量名中注入空格。试试这个代码:var o:Object = {}; o["sales order"] = "something"; trace(o["sales order"]); 现在,至于为什么有人会这样做,我不知道 :)
  • 我试过了,我得到了同样的错误。但是,我需要在键中使用空格。我什至尝试过:titleDims="[{Month: comboBox1.text}]" 并且生成了相同的错误!
  • @OP 为什么是引号?这使它成为一个字符串。 titleDims=[{Month:comboBox1.text}]不是你想要的吗?
  • 只是出于好奇 - I will need spaces in the keys - 这是什么要求?
【解决方案2】:
cb1 = comboBox1; cb2 = comboBox2; cb3 = comboBox3;

选项 A

titleDims="[{'Month': cb1.text, 'Year':cb2.text, 'Sales Order':cb3.text}]";

选项 B

titleDims="[{Month: cb1.text, Year:cb2.text, SalesOrder:cb3.text}]";

选项 C

titleDims="[{Month: cb1.text, Year:cb2.text, Sales_Order:cb3.text}]";

我忽略了您首先将titleDims 设置为字符串并假设您有一些需要这种方式的代码。以后就不需要引用这个声明了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多