Webappbuilder自定义widget模板

时间:2022-12-19 15:49:03

Webappbuilder自定义widget模板

by 李远祥

  1. 到\\widgets\samplewidgets目录下拷贝 CustomWidgetTemplate 文件并重命名为MyWidget

    Webappbuilder自定义widget模板

  2. 设置widget的类名。在MyWidget 目录下打开Widget.js ,将baseClass 改为

    baseClass: 'jimu-widget-mywidget' 如下图

Webappbuilder自定义widget模板

  1. 自定义widget的UI界面。在Widget.html 文件中可以添加其widget的界面。可以尝试将以下代码加入到这个html页面中。

    Webappbuilder自定义widget模板

  2. 将自定义的widget注册到应用中。打开stemapp/sample-configs 文件,找到widgetPool->widgets ,添加一个节点内容,然后保存文件

    Webappbuilder自定义widget模板

  3. 测试widget 。 打开 http://[your host name:3344]/webappviewer/?config=sample-configs/config-demo.json  点击图标,出现其图标,操作结果如下

    Webappbuilder自定义widget模板

  4. 让widget变得更加灵活可配

    a.打开MyWidget  文件夹下的 config.json 文件,添加json的结构文本到查建中,如下

    Webappbuilder自定义widget模板

    b. 将原来的widget.html 页面代码改为,让其可以直接读取配置的关键变量

    Webappbuilder自定义widget模板

    c.打开第5步的测试连接,查看修改的内容。Widget的内容则变为config文件对应的变量。

  5. 让界面更加友好一些。一般来说,html的界面布局和美化都使用css文件,widget同样可以使用CSS文件来让整个界面变得比较美观。打开css/style.css 文件,增加css代码到该文件中,如下图所示:

    Webappbuilder自定义widget模板

    该代码的作用是将页面的第一个div标签的内容设置为红色。这样做的好处是更好的结构化,让美工人员参与到应用程序的开发过程中。其最终的效果如下

    Webappbuilder自定义widget模板

  6. 访问地图
    1. 打开widget.js文件,删除startup函数的注释

      Webappbuilder自定义widget模板

    2. 修改widget.html的页面代码,加入map ID 属性,如下图

      Webappbuilder自定义widget模板

    3. 重新刷新页面,可以看到map空间的ID被现实出来
    4. 最终的结果是读取了应用中map控件的ID

      Webappbuilder自定义widget模板

  7. 国际化支持

    可以通过编写配置文件去适配多国语言。例如前面所用到的插件是英文的提示"This is my widget" and "This is configurable" ,可以通过编写MyWidget文件夹的配置文件去实现中文本地化。

    1. 打开nls/strings.js 文件,增加以下代码

      Webappbuilder自定义widget模板

    2. 在nls目录下创建子文件夹 zh-cn ,如图所示

      Webappbuilder自定义widget模板

    3. 将string.js 拷贝到zh-cn文件夹中
    4. 修改zh-cn/strings.js 文件里面的内容,如下

      Webappbuilder自定义widget模板

    5. 将widget.html的内容修改为读取配置代码,如下图

      Webappbuilder自定义widget模板

    6. 重新刷新页面即可查看到中文的配置。效果如下图

      Webappbuilder自定义widget模板

  8. 部署widget
    1. 打开MyWidget文件夹里面的 manifest.json 文件,更改里面的属性,如name、author、description等,其中name属性必须与widget的文件夹名称相同。

      Webappbuilder自定义widget模板

      具体的每个属性可以查看网址 https://developers.arcgis.com/web-appbuilder/guide/widget-manifest.htm 的说明。

    2. 将MyWidget 文件夹拷贝到\stemapp\widgets 文件夹下,启动node.js(最快的港式是直接打开webappbuilider文件夹下的start.bat文件),输入http://[your host name:3344]/webappbuilder,这样在使用webappbuilder创建应用的时候就可以使用自定义的widget了。如下图在微件选择的时候就会出现定义的插件

      Webappbuilder自定义widget模板

Webappbuilder自定义widget模板的更多相关文章

  1. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面

    前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...

  2. yii2——自定义widget

    参考资料:http://www.bsourcecode.com/yiiframework2/how-to-create-custom-widget-in-yii2-0-framework/   如何使 ...

  3. VS自定义项目模板:[2]创建VSIX项目模板扩展

    VS自定义项目模板:[2]创建VSIX项目模板扩展 听语音 | 浏览:1237 | 更新:2015-01-02 09:21 | 标签:软件开发 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师 ...

  4. dedecms如何自定义专题模板

    很多人看到别人的网站也是用dedecms建的,但是他们的专题做得很漂亮,也在想如何自定义dedecms专题模板呢? 其实很简单,只要在dedecms默认专题模板上做一些修改就好了 <!DOCTY ...

  5. android自定义UI模板图文详解

    不知道大家在实际开发中有没有自定义过UI模板?今天花时间研究了一下android中自定义UI模板,与大家分享一下. 每个设计良好的App都是自定义标题栏,在自定义标题栏的过程中大部分人可能都是自定义一 ...

  6. Android Studio自定义注释模板及生成JavaDoc

    刚开始学习Android,使用了Android Studio IDE.为了将来生产JavaDoc,学习一下如何自定义注释模板. . 自定义注释模板 1. 通过 File –>Settings 或 ...

  7. ThinkPHP框架配置自定义的模板变量(十)

    原文:ThinkPHP框架配置自定义的模板变量(十) 模板替换(手册有详细介绍对应的目录) __PUBLIC__:会被替换成当前网站的公共目录 通常是 /Public/ __ROOT__: 会替换成当 ...

  8. WebAppBuilder自定义主题

    WebAppBuilder自定义主题 by 李远祥 基本步骤: 创建新主题的文件夹 注册新的主题到manifest.json 文件 覆盖HeaderController 部件的颜色. 覆盖panel的 ...

  9. Pycharm 自定义文件模板

    Pycharm 自定义文件模板 每次新建文件都有相同的代码框架,每次重复敲浪费了程序员的寿命啊 按照下面方式自定义自己的模板:

随机推荐

  1. maven-各配置文件详解

    1.setting.xml http://www.cnblogs.com/yangxia-test/p/4409736.html <?xml version="1.0" en ...

  2. Wix安装程序中判断是否安装的&period;net framwork 4&period;5

    <PropertyRef Id="NETFRAMEWORK40FULL"/> <PropertyRef Id="NETFRAMEWORK45" ...

  3. 使用CSC&period;EXE编译第一个HELLO WORLD

    坐的没事,下了个C#2008,看帮助文件写了个HELLO.CS的源文件: //hello.cs //Show "Hello Word!" using system; class h ...

  4. Java语言导学笔记 Chapter 8 Thread

    8.1 什么是线程 def: 线程是程序内的一个单一的顺序控制流程 作为一个顺序的控制流程,线程必须在运行它的程序中占用一些资源.例如,线程必须有它自己的执行堆栈和程序计数器.在线程内运行的代码只在此 ...

  5. hdu 4687 Boke and Tsukkomi

    Dancing link twice. Find the maximum combination numbers in the first time. Enumerate each node, dan ...

  6. Linode开通新加坡机房:vps速度快,价格不变!

    vps服务商linode终于开通了新加坡机房中心,这是linode全球第7个机房,满足日益增长的东南亚市场需求.印度.中国.澳大利亚及周边国家都有很好的用户体验. linode新加坡机房采用思科Cis ...

  7. SSD的传输总线、传输协议、传输接口

    前言:关于SSD,有众多总线类型.协议类型.接口类型,每个接口还包括不同型号,在这里花点时间全部整理一下,整理日期2017-08-08. 1.传输总线 总线就像一条公路,公路上的车好比总线上的电信号: ...

  8. 自然人税收管理系统扣缴客户端Sqlite数据库有密码的,如何破解读取呢

    https://www.cnblogs.com/Charltsing/p/EPPortal.html 有人问我能不能直接读自然人税收管理系统扣缴客户端,因为需要导出数据做处理. 看了一下,这个客户端是 ...

  9. 数据库session立即生效(64---8192) SCOPE参数

    SCOPE=MEMORY|SPFILE|BOTH 指示了修改参数时的“作用域”: SCOPE=MEMORY :只在实例中修改,重启数据库后此次修改失效. SCOPE=SPFILE :只修改SPFILE ...

  10. Spring中的接口BeanFactory和FactoryBean的学习

    BeanFactory: 相当于对象工厂,可以获取对象的实例以及相应的属性.BeanFactory定义了IOC容器的最基本形式,并提供了IOC容器应遵守的的最基本的接口,也就是Spring IOC所遵 ...