问题标签 [parsley]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
323 浏览

apache-flex - SequenceWaiter 无法识别我的事件

我正在使用这个AsyncHelper。我想创建基本的测试用例,我想从测试方法分派事件(通过 Parsley MessageDispatcher),在任何其他方法中捕获此事件并将其分派回来(通过 flex EventDispatcher)。

这是我的测试用例: package flexUnitTests { import flash.events.ErrorEvent; import flash.events.Event; import flash.events.EventDispatcher;

}

我的活动看起来像这样: package flexUnitTests.events { import flash.events.Event;

}

不知道哪里出了问题。如果我在代码中进行跟踪,我可以看到 Parsley 将我的事件分派到 passItOn 方法中。并将 flex EventDispatcher 调度事件返回。但我不知道为什么 SequenceWaiter 无法识别我的事件。

0 投票
1 回答
836 浏览

apache-flex - 欧芹弹出窗口显示 2 个弹出窗口

我有一个可以创建另一个弹出窗口的欧芹弹出窗口。

当我关闭根弹出窗口时出现问题,当我再次打开弹出窗口并单击子弹出窗口时,它实际上打开了 2 个子弹出窗口。

知道为什么会发生这种情况吗?

我已经为根弹出窗口和子弹出窗口设置了reuse ='false'和modal ='true'。

孩子(场景视图)

0 投票
1 回答
438 浏览

apache-flex - Flex Cairngorm 3 表示模型初始化

好的,所以我打开了一个 TitleWindow……我定义了 6 个状态。我对所有视图都使用了演示模型模式。我发现了一个令人沮丧的细微差别。当我告诉我的窗口进入 XXX 状态时,控件必须初始化,因为 flex 中的状态使用延迟加载。所以......我的 PM 代码说 myTextArea.text 爆炸并说“无法访问......”所以作为一种解决方法,我在我的控件上创建了一些 creationComplete 事件以向 PM 注册控件。因此,当状态发生变化时,textarea 最终会初始化,并在 creationComplete 调用 PM.registerTextArea() 设置对它的引用。然后在那个函数中我运行我的代码...... myTextArea.text.. 等等。

这似乎是一个丑陋的黑客,我讨厌它。有没有办法等到整个状态在创建然后在 PM 上调用代码?我已经尝试过 enterstate ......但这个事件似乎在状态控件准备好之前触发。

我试图添加评论,但我想编辑是我能做到这一点的唯一方法......

致大家:感谢您的反馈。我正在做一些有点偏离直接 PM 的事情。每个视图都有一个 viewController(我这样称呼它们)。它有点像我自己的委托/数据提供者的混合体。但这没有实际意义。在处理状态时,最痛苦的是弹性组件的生命周期。如果您更改状态.. 没有任何事件可以说“我在此状态下的所有组件都准备好了”。唯一说“我们改变了状态”的事件。所以我在状态变化时触发的代码正试图与尚未准备好的组件对话。所以从我所见,似乎没有设计模式或完美的方法来确保所有组件都在一个状态下创建,除非在该状态下的每个组件上使用 creationComplete 来注册它已经准备好......如果你不这样做,你获得比赛条件。无论是框架还是设计模式,

textarea 是一个简单的 PM 修复.. 只需将其绑定到 pm 值。但有些时候我不能。

具体来说,一旦我达到那种状态,我就会尝试将视频附加到显示器上。这是通过 addchild 完成的。无论我在哪里做.. 在调用 addchild 之前,我需要知道 videoDisplay 已完成加载。我什至尝试了 currentStateChange 事件,因为文档说最后触发......但是唉......状态中的组件仍在初始化。因此,creationComplete 似乎是我唯一的选择。也许保持代码干净的唯一明智的方法是在进入状态后使用 as 创建整个事物(视频显示和视频)。我只是希望 flex 框架有事件来帮助我,而不是在运行中构建所有东西。

0 投票
1 回答
133 浏览

apache-flex - Parsley:从 ObjectDefinition 创建 ObjectDefinitionBuilder

我正在为 Parsley 开发一个框架扩展,并且需要ObjectDefinition在上下文的初始化期间有效地克隆一个,并改变它的一些属性。

由于ObjectDefinition's 本质上是不可变的,我发现我必须跳过箍来创建一个新的构建器,以安全地确保现有的属性ObjectDefinition已被复制。

有没有办法ObjectDefinitionBuilder从现有的安全地创建一个新的ObjectDefinition

如果不是,还有哪些其他替代方法可用于创建ObjectDefinition克隆?

0 投票
2 回答
461 浏览

apache-flex - 可视化组件中的注入模型

我正在使用 Parsley 框架。我正在尝试在自定义可视化树组件中注入模型;

构建配置:

然后我在 mxml 中使用了这棵树:

我曾尝试覆盖父函数,但出现错误。(模型为空); override protected function dragDropHandler(event:DragEvent):void { model.action = "drop" }

我在模型设置器中设置了断点并执行了但模型仍然为空;

问题出在哪里?

0 投票
1 回答
736 浏览

actionscript-3 - 如何在 as3 中使用 parsley 框架注入字典?

在我的欧芹容器中,我正在实例化一个包含字典 (flash.utils.Dictionary) 的对象“A”。

我想用欧芹创建这个字典并将其注入“A”。这个字典对结构是:key=id of object 'B', value='B' 其中对象'B'也是一个使用欧芹定义和创建的对象(所以基本上pairs结构和对象id作为键和对象本身作为值)。

现在,我创建“A”和“B”没有问题,但似乎找不到使用欧芹创建此字典的正确方法,也无法将其注入“A”。

非常感谢任何帮助!

在此先感谢, Yogev

0 投票
1 回答
447 浏览

apache-flex - 在 Parsley 2.4 中寻找命令链接的示例

为了帮助我理解,我正在寻找 Parsley 中的命令链接示例。我所说的命令链接的意思是当一个命令返回一个结果,然后立即用于启动另一个命令。我在这里问这个问题是因为欧芹论坛已经关闭了 2 天。

0 投票
1 回答
1683 浏览

apache-flex - Flex 和 Parsley 日志记录

我正在寻找在我的 flex 4.5 项目中记录消息的可能性。这应该涵盖 remoteClasses、errorHandler 中的错误消息或手动输入的消息。在阅读了很多网页之后,来自 parslay 的解决方案看起来不错。无论如何我想切换到这个框架。

好处是可以在运行时配置日志记录行为。但我不明白文档。也许是因为我对欧芹很陌生。谷歌也没有合适的结果。

您是否已经这样做了,您可以给我一些代码片段。非常感谢

坦率

编辑:由于 J_A_X 合理的批评,我添加了我的代码,因为我已经部分成功了。

首先我们需要一个配置文件,因为我想在运行时配置日志记录行为。这是项目根目录中的一个简单 xml 文件。

这是我的应用程序:

此时,日志记录将在 flex 构建器的控制台中工作,因为 parsley 默认使用 TraceTarget。现在,我想将我的日志文件发送到套接字。我写了一个粗略的 SocketTarget。

在欧芹文档中,我可以看到评论

此标记创建的默认目标类型是 TraceTarget。您可以显式声明其他目标类型:

如果我添加类型属性,我会收到错误消息“BootstrapProcessor 中的一个或多个错误”。和我在错字后收到的一样。

你能给我一些提示,我如何将我的日志发送到套接字目的地?

0 投票
2 回答
2892 浏览

apache-flex - 使用演示模型模式的 Flex 4 的 Parsley 依赖注入问题

我有一个视图类 EmployeeList 如下:

PM 看起来像这样:

无论我是使用还是自动装配来执行注入,当我运行它时,我都会收到以下错误消息:

TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 cafeparsley.view::EmployeeList/_EmployeeList_List1_i()[C:\dev\code\workspace\Examples\CafeParsley\src\cafeparsley\view\EmployeeList.mxml:29] 在 cafeparsley.view::EmployeeList/_EmployeeList_Array2_c() 在 mx .core::DeferredInstanceFromFunction/getInstance()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\DeferredInstanceFromFunction.as:105] 在 spark.components::SkinnableContainer/createDeferredContent()[E :\dev\4.x\frameworks\projects\spark\src\spark\components\SkinnableContainer.as:985] 在 spark.components::SkinnableContainer/createContentIfNeeded()[E:\dev\4.x\frameworks\projects \spark\src\spark\components\SkinnableContainer.as:1014] 在 spark.components::SkinnableContainer/createChildren()[E:\dev\4.

所以当错误被抛出时,employeeListPM 为空。但是,如果我注释掉 <s:List>组件,重新运行并在 init 方法中设置断点,init() 将被调用。所以不是我的上下文配置错了,只是PM没有及时注入,报错了。但是根据 Parsley 手册,如果我使用自动装配或<parsley:configure/>PM 应该在需要的时候注入。

在我认为是相对微不足道的依赖注入场景中,我看不出我做错了什么。你能帮我吗?

0 投票
2 回答
1176 浏览

actionscript-3 - Flex - ArgumentError:错误 #2025:使用添加的 swc 文件时,提供的 DisplayObject 必须是调用者的子对象

我知道这里已经就这个错误 #2025 主题提出了很多问题。

但是,就我而言,它是在尝试.swc在 flex 项目中使用文件时发生的。

我正在尝试通过添加使用“ Add swc”文件将我的一个库项目用于另一个 flex 项目。我已经成功地将它作为.swc文件添加到我的新项目中。

但是,当我尝试通过单击浏览器中的应用程序来使用它的新项目时,它显示了这个运行时错误。下面是我的新项目的主文件。

新样本.mxml

堆栈跟踪:

ArgumentError:错误 #2025:提供的 DisplayObject 必须是调用者的子对象。在 flash.display::DisplayObjectContainer/getChildIndex() 在 mx.managers::SystemManager/getChildIndex()[C:\autobuild\3.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:1772]在 mx.managers::SystemManager/mouseDownHandler()[C:\autobuild\3.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:3615]

我无法确定导致错误的原因?


编辑:这是.swc库文件的主要应用程序文件。

主.mxml