【问题标题】:titanium alloy get value of field in view钛合金获得视场值
【发布时间】:2014-12-01 22:43:38
【问题描述】:

我一直在构建我的第一个 Titanium Alloy 应用程序,我有一个 5 步注册表单,其中包含分布在 5 个视图中的不同表单字段。在我的最后一步中,我想发布表单元素的值。访问每个字段值的最佳方法是什么?例如。在 screen5 中如何获取 screen1 视图中 $.name 字段的值?

这是我的一些代码:

<ScrollableView id="indexSV" showPagingControl="false" scrollingEnabled="false" top="0">
            <Require src="screen1" id="screen1"></Require>
            <Require src="screen2" id="screen2"></Require>
            <Require src="screen3" id="screen3"></Require>
            <Require src="screen4" id="screen4"></Require>
            <Require src="screen5" id="screen5"></Require>
        </ScrollableView>

屏幕的结构如下:

<Alloy>
<View>
    <Label top="20">YOUR NAME:</Label>
    <TextField top="5" id="name" />
    <Button top="20" right="10%" id="btnNext" width="120" onClick="next" class="next">NEXT STEP</Button>
</View>
</Alloy>

【问题讨论】:

    标签: titanium titanium-alloy


    【解决方案1】:

    目前我可以想到以下两种方式:

    1.在alloy.js中定义全局JSON对象:

    alloy.js中定义全局变量如下:

    Alloy.Globals.signUpValues = {
      name : "",
      email : ""
    }; 
    

    现在在屏幕控制器中,将获取的值分配给Alloy.Globals.signUpValues。就像screen1 的控制器一样,您可以执行以下操作:

    function next() {
      Alloy.Globals.signUpValues.name = $.name.value;
    }
    

    最后,您可以使用以下命令获取所需屏幕中的所有值:

    var signupJSON = Alloy.Globals.signUpValues;
    

    2。在所需视图中使用回调:您可以在所需屏幕的控制器中触发该函数,并访问视图控制器发送回主控制器的响应。所以你可以做类似的事情:

    在主控制器中:

    $.screen1.callback(function(name)
    {
      $.screen5.initName(name); //pass name value to screen5's controller
    });
    

    在 screen1 的控制器中:

    var nextCallback;
    exports.callback = function (callback)
    {
      nextCallback = callback;
    };
    
    function next(e) {
      nextCallback($.name.value);
    }
    

    在 screen5 的控制器中:

    var name;
    exports.initName = function (nameVal)
    {
      name = nameVal;
    };
    

    P.S : IMO,选项 1 更清洁且易于维护。

    【讨论】:

    • 谢谢。这正是我所需要的。
    【解决方案2】:

    这是获取值的方法

       function next(e) {
        var value = $.name.value;
       }
    

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      • 2016-10-11
      • 1970-01-01
      相关资源
      最近更新 更多