【问题标题】:Bindable variable not updating with viewstack / swiz可绑定变量不随 viewstack / swiz 更新
【发布时间】:2010-11-23 16:56:51
【问题描述】:

我正在使用 Swiz 框架,并且正在尝试使用可绑定属性更新我的 viewstack 的 selectedIndex。它到达了我的事件处理程序,它更新了可绑定变量,但主应用程序文件的视图堆栈从未意识到它。可能是什么问题?

谢谢

-迈克

=================================

主应用程序文件

<mx:Script>
    <![CDATA[
        import reg.model.ApplicationViewModel;
        import beyaz.reg.swiz.SwizBeans;
        import org.swizframework.Swiz;

        [Autowire(bean="applicationViewModel")]
        [Bindable]
        public var applicationViewModel:ApplicationViewModel;

        private function preInitialize():void {
            Swiz.loadBeans( [ SwizBeans ] );
        }

    ]]>
</mx:Script>


       <mx:ViewStack id="theViewstack" **selectedIndex="    {applicationViewModel.mainViewIndex}"** width="100%" height="100%">
    <prescreen:Prescreen id="prescreenView"/>
    <login:Login id="loginView"/>
    <profile:Profile id="profileView"/>

</mx:ViewStack>

==================================

应用视图模型

包 com.reg.model { 公共类 ApplicationViewModel { 公共静态常量 PRESCREEN_VIEW:int = 0; 公共静态常量 LOGIN_VIEW:int = 1; 公共静态常量 PRSNL_INFO_VIEW:int = 2;

    [Bindable] 
    public  var message:String = "";

    [Bindable]
    public  var mainViewIndex:int = PRESCREEN_VIEW;
}

}

============================

控制器

包 com.reg.controller {

import com.reg.model.ApplicationViewModel;

import mx.collections.ArrayCollection;
import mx.controls.Alert;
import mx.events.DynamicEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.core.Application;

import org.swizframework.Swiz;
import org.swizframework.controller.AbstractController;

public class PrescreenController// extends AbstractController
{
    public static const START_REGISTRATION:String = "startReg";

    [Autowire(bean="applicationViewModel")]
    [Bindable]
    public var applicationViewModel:ApplicationViewModel;


    [Mediate(event="startReg")]
    public function startReg():void 
           {

              //CODE GETS TO HERE!
              applicationViewModel.mainViewIndex = ApplicationViewModel.PRSNL_INFO_VIEW;

    }


}

}

【问题讨论】:

  • 有人吗?任何人?绑定变量时我可以寻找常见的陷阱吗?
  • 您使用的是哪个版本的 Swiz?您应该考虑升级到最新版本(我推荐 Swiz 1.0 RC2 甚至是来自Git 的最新版本)。无论如何,你能发布你的 Swiz 配置吗?你的 applicationViewModel 是 Prototype bean 吗?
  • 谢谢格哈德。这就是问题所在,但现在,我当然会遇到编译器错误:1120:访问未定义的属性 Swiz。 1172: 定义 org.swizframework:Swiz 找不到。
  • Swiz 的包结构与早期版本相比发生了很大变化。例如。 Swiz 类现在可以在 org.swizframework.core.Swiz 中找到。请查看documentation,这很有帮助。还有一个迁移指南。如果您仍然遇到问题,请提出另一个问题或更新此问题。
  • 你试过移动[Bindable]标签吗?

标签: apache-flex bindable swiz


【解决方案1】:

我上周刚刚被这个问题所困扰。

将您的[Bindable] 标签放在其他标签之前。由于某种原因,除非您将 [Bindable] 标记放在首位,否则 Flex 编译器不会在适当的 PropertyChangeEvent 调度中折叠。

【讨论】:

    猜你喜欢
    • 2012-03-04
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多