需要视图并添加变量(Appcelerator Alloy)

时间:2016-07-13 20:49:11

标签: appcelerator appcelerator-alloy

我不知道我是做得对还是使用了任何好的做法,但我试图要求并在我的观点上添加观点。

但是我的index.xml中有一个视图容器

<View id="containerDays" layout="vertical" height="Titanium.UI.SIZE">
    <Require id="requiredDay" src="NewDay"/>
</View>
<Label id="buttonAddDay"  class="button" >Adicionar outro dia</Label>

也在index.js上我有:

$.buttonAddDay.addEventListener("click", addNewDay);
function addNewDay () {
  var novoDia  = $.getView("NewDay");
  $.containerDays.add(novoDia);
}

我也在这里查看另一个文件夹:

/app/views/NewDay.xml

并且该视图内部是一个简单的输入

<Alloy>
  <View class="containerNewDay" layout="vertical" height="Titanium.UI.SIZE">
    <TextField id="Day" >write a new day</TextField>
  </View>
</Alloy>

总结一切,

  1. 我正在尝试在我的$ .containerDay中添加我的$ .containerNewDay,但我没有使用getView()或.open()

  2. 取得任何成功
  3. 我将不得不使用所有文本字段项目将其发送到服务器,如何设置ID,但遗憾的是我不知道如何在appcelerator上执行此操作。

2 个答案:

答案 0 :(得分:1)

回答上面的答案,你是否包含原始代码块中的.add方法?所以它应该是:

$.buttonAddDay.addEventListener("click", addNewDay);

function addNewDay () {
  var novoDia  = Alloy.createController("NewDay").getView();
  $.containerDays.add(novoDia);
}

或更好,将是:

function addNewDay () {
  $.containerDays.add(Alloy.createController("NewDay").getView());
}

因为这不会让指针对视图开放。

如果你想让它更干净:

$.buttonAddDay.addEventListener("click",  function addNewDay () {
  $.containerDays.add(Alloy.createController("NewDay").getView());
});

或者如果你想坚持纯粹的&#34;合金方式,然后保留 addNewDay 功能,只需在按钮XML中添加 onClick =&#34; addNewDay&#34; 处理程序。

至关重要的是,请记住,您需要包含视图 ContainerDays 才能拥有水平的布局,否则您添加的视图将只是位于彼此的顶部

答案 1 :(得分:0)

变化:

$.buttonAddDay.addEventListener("click", addNewDay);
    function addNewDay () {
      var novoDia  = $.getView("NewDay");
    }

要:

$.buttonAddDay.addEventListener("click", addNewDay);
function addNewDay () {
  var novoDia  = Alloy.createController("NewDay").getView();
}