【问题标题】:Flex, access view.data object into a variableFlex,将view.data对象访问到变量中
【发布时间】:2012-05-15 23:05:03
【问题描述】:

下面是我正在查看的代码。

<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark" title="data"
    xmlns:model="model.*"
    creationComplete="data=sqlSearch(data)"
    >

在这个视图中,它刚刚被 pushView 与数据对象一起编辑。我需要将此数据用作 sql 搜索的一部分。 我在初始视图中又使用了一次creationComplete。我的理解是,在creationComplete上,无论运行什么函数,(这里我就以sqlSearch为例),它的返回值就变成了要在List中使用的数据。

creationComplete 行的错误是

此行有多个标记: -1137:参数数量不正确。预计不超过 0。

我该怎么办?

【问题讨论】:

  • 看起来您的 sqlSearch 方法不需要参数,但您正在给它一个参数。

标签: actionscript-3 apache-flex flash-builder flex-spark


【解决方案1】:

您定义的 creationComplete 需要一个事件处理函数。

要直接对事件进行一些逻辑,请使用 { },如下所示

creationComplete  = "{data=sqlSearch(data)}"

我强烈建议使用处理函数,以便您可以在 creationComplete 上添加更多逻辑。 为此,请使用以下示例

<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark" title="data"
    xmlns:model="model.*"
    creationComplete="handleCreationComplete()"
    >

<mx:Script>
    <![CDATA[

    private function handleCreationComplete():void
    {
         //Here is my code
         data=sqlSearch(data);
    }


]]></mx:Script>

【讨论】:

  • 1./ 我看不出花括号 ({}) 与此处的相关性:AFAIK 它们在事件处理程序中被忽略,因为没有进行数据绑定。 2./虽然我同意你的原则,但这段代码可能仍然会抛出同样的错误,只是在不同的行上。
  • 感谢您的建议。我已经实现了花括号以便快速实现,并且错误会自行清除。万岁。不幸的是,我现在有一个完全不同的错误。不想完全分歧,您对将数据对象从 pushview 更改为 String 有什么想法吗?无论如何,谢谢。
  • @RIAstar 大括号会让“flex”知道那里有一个要评估的表达式。所以这完全不同。在 mx:Label 的情况下,例如 text="1+1" 与 text="{1+1}" 不同。请试一试。 Pat Happy 我可以帮忙。现在下一个错误是什么?
  • stackoverflow.com/questions/10483027/… 我发布了一个与我的新问题相关的新问题。再次感谢。
  • @AdrianPirvulescu textLabel 类的属性,其值可以通过{} 绑定。 creationComplete 是一个事件处理程序,它不需要花括号来执行代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
  • 2015-09-22
  • 2014-04-05
  • 2019-01-26
  • 1970-01-01
相关资源
最近更新 更多