当前位置: 首页 > news >正文

做网站市场价怎样在凡科免费做网站

做网站市场价,怎样在凡科免费做网站,亚马逊跨境电商怎么做,一比一高仿手表网站1. 背景 组件#xff08;Component#xff09;是SAPUI5应用程序中独立且可重用的部件。 SAPUI5提供以下两类组件: faceless组件 (class: sap.ui.core.Component): 无界面组件即没有用户界面相关的元素#xff0c;用于不需要UI元素编码的场景#xff1b; UI组件 (class: …1. 背景 组件Component是SAPUI5应用程序中独立且可重用的部件。 SAPUI5提供以下两类组件: faceless组件 (class: sap.ui.core.Component): 无界面组件即没有用户界面相关的元素用于不需要UI元素编码的场景 UI组件 (class: sap.ui.core.UICcomponent): UI组件用于表示应用程序界面上UI元素例如按钮以及相应的设置和元数据。 注意: 不能将“无界面组件”添加到组件容器Component Container中 sap.ui.core.UICcomponent 扩展了 sap.ui.core.Component并在sap.ui.core.Component的基础上添加了屏幕渲染功能。 一般而言应用程序中一个完整的组件应包含两部分组件控制器文件(component .js)和应用程序描述描述符文件(manifest.json)。 使用组件最大的好处就在于封装好的组件可以被灵活地嵌入到不同的组件容器Component Container中。例如Fiori Launchpad就是一个组件容器在应用程序的测试过程中我们通常也会手动创建一个组件容器。 注意在实例化组件容器时会指定应用程序的命名空间组件容器会通过此路径去查找组件控制器文件。 2. 示例 2.1 定义组件控制器文件 以下是一个组件控制器文件Component.js的例子 sap.ui.define([sap/ui/core/UIComponent,sap/ui/model/json/JSONModel ], function (UIComponent, JSONModel) {use strict;return UIComponent.extend(my.namespace.demo.Component, {metadata : {manifest: json},init : function () {// call the init function of the parentUIComponent.prototype.init.apply(this, arguments);// set data modelvar oData {recipient : {name : World}};var oModel new JSONModel(oData);this.setModel(oModel);}}); });在这个例子中我们首先定义了一个新的UI组件然后在metadata属性中设置了manifest为json这意味着我们将使用JSON格式的manifest文件来定义组件的配置。 然后在init函数中我们首先调用了父类的init函数然后设置JSON模型并将其设置为组件的模型。这个模型包含了一个recipient对象它有一个name属性值为World。 2.2 加载组件 定义好组件文件后我们会在应用程序的index.js文件中实例化组件容器并加载所创建的组件将其加载至页面。 下面是index.js文件加载组件的一个示例 sap.ui.define([sap/ui/core/ComponentContainer ], function (ComponentContainer) {use strict;new ComponentContainer({name: my.namespace.demo,settings : {id : demo},async: true}).placeAt(content); });3. 练习 在本篇博客的练习中让我们将把所有UI元素封装到一个独立于index.html文件的组件中。 这样无论何时访问资源我们都将相对于组件(而不是相对于index.html)进行访问。 这种架构上的改变相较于之前静态的index.html页面应用程序的加载变得更灵活比如可以直接嵌入到SAP Fiori launchpad这样的容器中。 3.1 创建Component.js文件 首先让我们我们在webapp文件夹中创建了一个初始的Component.js文件用来存放我们的应用程序设置。当组件实例化时SAPUI5会自动调用组件的init函数。我们的组件继承自基类sap/ui/core/UICcomponent在重写的init方法中应首先调用基类的init函数。 创建好的项目文件结构如下 Component.js的代码如下 sap.ui.define([sap/ui/core/UIComponent ], function (UIComponent) { use strict;return UIComponent.extend(zsapui5.test.Component, {init() {// call the init function of the parentUIComponent.prototype.init.apply(this, arguments);}}); });3.2 向Component.js中添加metadata 接下来让我们向Component.js文件中添加应用程序配置。 改动后的Component.js代码如下 sap.ui.define([sap/ui/core/UIComponent,sap/ui/model/json/JSONModel,sap/ui/model/resource/ResourceModel ], function (UIComponent,JSONModel,ResourceModel) {use strict;return UIComponent.extend(zsapui5.test.Component, {metadata: {interfaces: [sap.ui.core.IAsyncContentCreation],rootView: {viewName: zsapui5.test.view.App,type: XML,id: app}},init() {//call the init function of the parentUIComponent.prototype.init.apply(this, arguments);//set data modelconst oData {recipient : {name: World}};const oModel new JSONModel(oData);this.setModel(oModel);//set i18n modelconst i18nModel new ResourceModel({bundleName: zsapui5.test.i18n.i18n});this.setModel(i18nModel, i18n);}}); });改动后的component .js文件由两部分组成元数据部分和组件初始化时调用的init函数部分。 元数据部分定义了对根视图App.view.xml文件的引用这样组件就可以管理应用视图的显示而不是像之前那样直接在index.js文件中直接创建并显示根视图。元数据定义部分还实现了sap.ui.core.IAsyncContentCreation接口该接口允许完全异步地创建组件。 ...metadata: {interfaces: [sap.ui.core.IAsyncContentCreation],rootView: {viewName: zsapui5.test.view.App,type: XML,id: app} ...请注意sap.ui.core.IAsyncContentCreation接口隐式地将组件的rootView和它的路由器配置都设置为async: true; 有关它的作用我们将在后续有关“路由和导航”的博客中描述。 在init函数部分中我们像之前在App.controller.js控制器文件中所做的那样实例化数据模型oModel和i18n模型i18nModel。 ...init() {//call the init function of the parentUIComponent.prototype.init.apply(this, arguments);//set data modelconst oData {recipient : {name: World}};const oModel new JSONModel(oData);this.setModel(oModel);//set i18n modelconst i18nModel new ResourceModel({bundleName: zsapui5.test.i18n.i18n});this.setModel(i18nModel, i18n);} ...请注意模型是直接绑定在组件上的而非在组件的根视图上。然而由于嵌套的控件会自动地继承父控件的承模型因此模型在视图上也是可用的。 3.3 调整App.controller.js文件 因为我们已经在Component.js文件中实现了数据对象和i18n模型对象的绑定让我们把之前写在App.controller.js控制器文件的逻辑移除也即删除 onInit 函数和所需的模块引用。 改动后的代码效果如下 sap.ui.define([sap/ui/core/mvc/Controller,sap/m/MessageToast ], function (Controller, MessageToast) {use strict;return Controller.extend(zsapui5.test.controller.App, {onShowHello: function () {// read msg from i18n modelconst oBundle this.getView().getModel(i18n).getResourceBundle();const sRecipient this.getView().getModel().getProperty(/recipient/name);const sMsg oBundle.getText(helloMsg, [sRecipient]);// show messageMessageToast.show(sMsg);}}); });3.4 调整index.js文件 在之前的index.js文件中我们直接实例化应用程序的视图对象XMLView。现在让我们通过组件容器来实例化了视图。 为此我们将之前添加的视图依赖项替换为新的sap/ui/core/ComponentContainer依赖项。该组件容器充当应用程序组件的父组件并处理其属性和导航事件。 创建一个组件容器的实例时需要指定应用程序的命名空间也即zsapui5.test(它指向项目的webapp文件夹这是component .js文件所在的位置)。 调整后的index.js文件效果如下 sap.ui.define([sap/ui/core/ComponentContainer ], function (ComponentContainer) {use strict;new ComponentContainer({name: zsapui5.test,settings : {id : test},async: true}).placeAt(content); });3.5 一般约定 在封装应用程序的组件时我们应遵循一下约定 组件名为 Component .js组件应与应用程序所有UI资源一起位于webapp文件夹如果要高效地使用index.html文件它也位于webapp文件夹中 3.6 运行 运行调整后的程序效果如下 与调整前相比应用程序的运行效果是相同的。但如果通过ctrl shift alt s打开诊断窗口来查看控件布局我们可以发现以下不同。 新增的ComponentContainer是XMLView的父控件。 4. 小结 本文介绍了SAPUI5中组件的概念和封装方式并通过一个示例展示了其用法。
http://www.yingshimen.cn/news/38816/

相关文章:

  • 网站开发和 app开发的区别深圳专业网站建设公司哪家好
  • 苏宁易购网站建设情况做招生网站
  • 青海网站建设推广在深圳注册公司需要多少钱
  • 嵌入式网站开发培训建设部资质查询平台
  • 昆明网站设计能实现什么功能亚马逊跨境电商开店有风险吗
  • 做网站的广告图片简单的网页设计主题
  • 开发网站建设用什么框架重庆沙坪坝天星桥发生斗殴
  • 湖南张家界建设厅网站wordpress商业模板个人
  • 丰县住房和城乡建设局网站wordpress xml插件下载
  • 网站制作代码东莞做企业营销型网站的公司
  • 做网投网站好wordpress缓存单个页面
  • php 网站迁移phpstudy如何搭建网站
  • 视频网站是怎么做权限管理的无锡手机网站制作
  • 刷题网站开发代理网络游戏
  • 电子商务网站功能设计做旅行社业务的网站都有哪些
  • 网站标签优化宝安logo设计
  • 用别人服务器做网站重庆市建筑工程信息网官网
  • 网站推广合作备案期间 需要关闭网站吗
  • 厦门网站建设工作视频制作软件哪个好用
  • 大麦网建设网站的功能定位弹幕网站用什么做
  • 网站群系统flashfxp上传多个网站
  • 网站开发人员的职责龙之向导外贸向导
  • 南昌建设企业网站公司工装公司是做什么的
  • 用狐狸做logo的网站土巴兔这种网站怎么做
  • access 数据库做网站免费做团购网站的软件有哪些
  • wordpress评论后显示不出来郑州网站建设方案优化
  • 做网页网站seo报表
  • app开发公司网站wordpress wizhi cms
  • 做油漆的网站php淘宝商城网站源码
  • 网站导航条内容美食网站代做