Добрый день!
Подскажите, как добавить кнопку в мобильном приложении?
Смотрел следующие публикации:
Не совсем понимаю, вью и контроллер это файлы модуля? Их подключать в файле манифеста мобильного приложения в секции PageExtensions?
Нравится
Роман, добрый день!
Вью и контроллер прописываются в отдельной клиентской схеме.
Напримере, нам нужно добавить кнопку на EditPage записи контакта.
Для этого сперва создаем отдельную клиентскую схему, назовем ее примером UsrViewButton.
В ней будет код вью и контроллера:
Terrasoft.LastLoadedPageData = { controllerName: "ContactEditPage.Controller", viewXClass: "ContactEditPage.View" }; Ext.define("ContactEditPage.View", { extend: "Terrasoft.view.BaseEditPage", config: { id: "ContactEditPage", refreshButton: { id: 'ContactEditPageButton', cls: "x-button-primary-blue", text: 'Обновить' } }, showRefreshButton: function (isShow) { var navigationPanel = this.getNavigationPanel(); var refreshButton = this.getRefreshButton(); if (isShow) { this._refreshButton = navigationPanel.addButton(refreshButton); } else { navigationPanel.removeButton(refreshButton); } return this._refreshButton; } }); Ext.define("ContactEditPage.Controller", { extend: "Terrasoft.controller.BaseEditPage", statics: { Model: Contact }, config: { refs: { view: "#ContactEditPage" } }, initializeView: function (view) { this.callParent(arguments); var btn = view.showRefreshButton(true); btn.on("tap", this.onRefreshButtonTap, this); }, onRefreshButtonTap: function() { console.log("test"); } });
Не буду вдаваться в подробности их логики, посути мы просто оверрайдим кастомные схемы и добавляем в них свои элементы.
После создания схемы UsrViewButton её нужно подвязать в манифесте. Сделать это можно так:
"Models": { "Contact": { "Edit": "UsrViewButton",
Для необходимой нам модели, в данном случае Contact мы прописываем свойство "Edit" поскольку именно на EditPage и будет добавлена кнопка) и указываем туда значение нашей схемы.
В результате мы получим кнопку в мобильном приложении.
Роман, добрый день!
Вью и контроллер прописываются в отдельной клиентской схеме.
Напримере, нам нужно добавить кнопку на EditPage записи контакта.
Для этого сперва создаем отдельную клиентскую схему, назовем ее примером UsrViewButton.
В ней будет код вью и контроллера:
Terrasoft.LastLoadedPageData = { controllerName: "ContactEditPage.Controller", viewXClass: "ContactEditPage.View" }; Ext.define("ContactEditPage.View", { extend: "Terrasoft.view.BaseEditPage", config: { id: "ContactEditPage", refreshButton: { id: 'ContactEditPageButton', cls: "x-button-primary-blue", text: 'Обновить' } }, showRefreshButton: function (isShow) { var navigationPanel = this.getNavigationPanel(); var refreshButton = this.getRefreshButton(); if (isShow) { this._refreshButton = navigationPanel.addButton(refreshButton); } else { navigationPanel.removeButton(refreshButton); } return this._refreshButton; } }); Ext.define("ContactEditPage.Controller", { extend: "Terrasoft.controller.BaseEditPage", statics: { Model: Contact }, config: { refs: { view: "#ContactEditPage" } }, initializeView: function (view) { this.callParent(arguments); var btn = view.showRefreshButton(true); btn.on("tap", this.onRefreshButtonTap, this); }, onRefreshButtonTap: function() { console.log("test"); } });
Не буду вдаваться в подробности их логики, посути мы просто оверрайдим кастомные схемы и добавляем в них свои элементы.
После создания схемы UsrViewButton её нужно подвязать в манифесте. Сделать это можно так:
"Models": { "Contact": { "Edit": "UsrViewButton",
Для необходимой нам модели, в данном случае Contact мы прописываем свойство "Edit" поскольку именно на EditPage и будет добавлена кнопка) и указываем туда значение нашей схемы.
В результате мы получим кнопку в мобильном приложении.
Дима Вовченко,
Спасибо! А не подскажите, где можно подробнее почитать?
Роман Сидаш,
Боюсь не подскажу, данный пример я написал сам основываясь на указанных вами публикациях.