Требовать представление и добавить с переменной (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>
так что все подводит итог,
Я пытаюсь добавить свой $.containerNewDay в свой $.containerDay, но у меня не получается с getView() или.open()
Мне придется использовать все элементы текстового поля, чтобы отправить его на сервер, как я могу установить идентификаторы, но, к сожалению, я не представляю, как это сделать на appcelerator.
2 ответа
Ответ выше, вы включаете метод.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());
});
или если вы хотите придерживаться "чистого" способа Alloy, то оставьте функцию addNewDay на месте и просто добавьте обработчик onClick="addNewDay" в кнопку XML.
Важно помнить, что вам нужно, чтобы ваш содержащий вид ContainerDays имел горизонтальную компоновку, или ваши добавленные виды будут просто лежать друг на друге.
Изменить:
$.buttonAddDay.addEventListener("click", addNewDay);
function addNewDay () {
var novoDia = $.getView("NewDay");
}
Для того, чтобы:
$.buttonAddDay.addEventListener("click", addNewDay);
function addNewDay () {
var novoDia = Alloy.createController("NewDay").getView();
}