2014-12-01 65 views
0

我一直在構建我的第一個鈦合金應用程序,並且我有一個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> 

回答

0

C在alloy.js

1.定義全局的JSON對象:urrently我能想到以下兩種方式

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 
}); 

在屏幕1的控制器:

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更清潔,易於維護。

+0

謝謝。這正是我需要的。 – Castles 2014-12-02 05:21:31

0

這裏是獲取值

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

感謝