尝试包含内容

(在tutorial.xml中)可以不用 label 元素,而是从页面“下”的一个文件获取HTML。

  1. 在组件的 screen 目录下的 tutorial 目录中创建一个简单的HTML文件: runtime/component/tutorial/screen/tutorial/hello.html 此文件可以包含任意的HTML。因为包含它的页面的父页面已经有header/footer等内容了,所以它很简单:

     <h1>Hello world! (来自 hello.html 文件)</h1>
    
  2. 在第一版的tutorial.xml文件的 label 元素后用一个 render-mode.text 元素来在页面中明确包含此 HTML 文件。大概是这样:

     <?xml version="1.0" encoding="UTF-8"?>
     <screen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="http://moqui.org/xsd/xml-screen-2.1.xsd"
             require-authentication="anonymous-all">
         <widgets>
             <label type="h1" text="Hello world!"/>
             <render-mode>
                 <text type="html,vuet" location="component://tutorial/screen/tutorial/hello.html"/>
             </render-mode>
         </widgets>
     </screen>
    

tutorial.xml的变更

  • 关于 render-mode:
    • Moqui XML 页面是不知道具体会被显示在哪个平台上的,可能被渲染在不同的环境。因此界面中特定于某个渲染模式的内容都要明确指定出来。在 render-mode 元素下,有多个子元素对应不同的渲染模式,甚至不同的文本模式如HTML、XML、XSL-FO、CSV等等。以便单个页面定义能以不同的模式渲染,为每个模式生成需要的内容。
    • 从 Moqui 2.1.0 开始,基于VueJS的混合客户端/服务器渲染功能就可用了。这使用 'vuet' 渲染模式取代 'html',因为输出实际是一个Vue模板而不是标准的HTML。text.@type 属性是"html,vuet",这样两个模式都会包含文件中的HTML内容。

现在还是用同样的URL访问页面,但是包含了来自HTML文件的内容,而不是作为一个 label inline在页面定义中。

results matching ""

    No results matching ""