本教程是构建Zendesk Sell应用程序系列的一部分:亚博

  • 第1部分:打基础<李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-jffHpj jHhdID gpoyWd">第2部分:设计用户界面<李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-jffHpj jHhdID gpoyWd">第3部分-创建和插入模板-你在这里<李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-jffHpj jHhdID gpoyWd">第4部分:获取数据<李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-jffHpj jHhdID gpoyWd">第5部分:在Zendesk Sell中安装应用程序亚博在前面的教程中,您为名为Related Leads的应用程序创建了启动文件,并修改了导入Zendesk Sell的HTML文件。亚博除了页脚之外,应用程序到目前为止只显示占位符值。在本教程中,您将创建模板以在应用程序的用户界面(UI)中显示数据。

    模板通常是应用程序用户界面的构建模块。它们为应用程序定义了不同的状态或视图。例如,一个模板可以包含用于输入搜索词的HTML表单,而另一个模板可以动态列出搜索结果。

    本教程涵盖以下任务:

    1. 添加模板引擎<李data-garden-id="typography.ordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-iNiQyp jHhdID eLzCct">创建模板以显示组织信息<李data-garden-id="typography.ordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-iNiQyp jHhdID eLzCct">在应用程序中插入模板<李data-garden-id="typography.ordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-iNiQyp jHhdID eLzCct">为错误消息创建模板

    添加模板引擎

    你可以在你的应用中使用任何模板引擎和任何你喜欢的版本。这个应用程序使用<一个href="http://handlebarsjs.com/">Handlebars.js

  • 通过插入以下内容将Handlebars库导入到应用程序中< >脚本标签iframe.html之前< >脚本引用您的main.js文件:
                 
    <脚本srchttps://cdn.jsdelivr.net/npm/<一个href="https://developer.zendesk.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="274f4649434b4245465554671309100910">(电子邮件保护)/dist / handlebars.min.js>脚本>

    创建模板以显示组织信息

    根据设计要求<一个href="https://developer.zendesk.com/documentation/apps/build-an-app/build-your-first-sell-app/building-your-first-sell-app-part-1-laying-the-groundwork/">规划应用程序,该应用程序需要一个模板来显示以下数据:

  • 机构名称<李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-jffHpj jHhdID gpoyWd">公司新领导的名单在句柄中,可以通过将模板包含在中来定义模板< >脚本标签。

    要创建模板

    1. iframe.html,添加如下组织模板< >脚本在其他人之前标记< >脚本标签:

                     
      <脚本idorg-template类型文本/ x-handlebars-template><h2>新线索orgName</h2><ul>#每一个领导<><一个href“{{url}}”目标“平等”>名字</一个></>/每一个</ul>脚本>

      这个模板包含几个<一个href="http://handlebarsjs.com/">车把表达式。句柄表达式通常由双花括号内的变量组成。例如:{{名称}}.当它运行时,应用程序将这些表达式替换为来自Javascript数据对象的值。对于组织模板,该对象应该包含:

    2. 机构名称({{orgName}}<李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-jffHpj jHhdID gpoyWd">一系列新线索({{领先}})。数组中的每一项都是一个对象。数组中的每个对象都应该包含:
    3. 的URL。引领导语页({{url}}<李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-jffHpj jHhdID gpoyWd">负责人的全名({{名称}}模板还使用{{#每个}}助手为leads数组中的每个leads添加列表项。

      <李data-garden-id="typography.ordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-iNiQyp jHhdID eLzCct">

      附上的< h2 >而且< ul >标签{{#如果}},{{其他}}助手(强调):

                     
      <脚本id“org-template”类型“文本/ x-handlebars-template”>如果领导<h2>领导orgName</h2><ul>每一个领导<><一个href“{{url}}”目标“平等”>名字</一个></>/每一个</ul>其他的<h2>没有领导发现orgName</h2>/如果</脚本>

      如果一个组织没有任何新的潜在客户,UI中的列表将为空白。为了创造更好的用户体验{{#如果}},{{其他}}如果该组织没有新线索,帮助程序将隐藏列表并显示替代标题。

      <李data-garden-id="typography.ordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-iNiQyp jHhdID eLzCct">

      保存iframe.html

    如果你刷新应用,它不会改变。您还没有在HTML中插入模板。下一步是插入模板并确认其工作正常。

    在应用程序中插入模板将模板插入到文档中所选的元素中。你加一个< div >标签,用于在运行时插入模板。一次只能插入一个模板,但可以切换到不同的模板。例如,您可以从显示splash页面开始,然后在用户单击按钮后切换到另一个页面。

    1. iframe.html,删除以下标签:

                     
      <h2>领导该组织h2><ul><><一个href目标平等自愿>引领一个一个>><><一个href目标平等自愿>引领两个一个>>ul>
    2. 将已删除的标签替换为以下内容:

                     
      <divid内容>div>
    3. main.js,添加以下内容displayLeads ()函数调用(高亮显示)到自调用函数:

                     
      函数常量客户端ZAFClient初始化客户端调用“调整”宽度“100%”高度“150 px”displayLeads
    4. 添加displayLeads ()自调用函数后的函数定义:

                     
      函数displayLeads常量orgDataorgName“XYZ Widget公司。”领导“名称”“爱丽丝阿拉贡”“url”“https://app.futuresimple.com/leads/2104416001”“名称”“鲍勃·巴金斯”“url”“https://app.futuresimple.com/leads/2104416001”renderTemplate“org-template”orgData“内容”

      在函数的第一部分中orgData对象定义了传递给Handlebars模板的硬编码值。稍后将使用来自API的实时数据替换这些值。

      的调用renderTemplate ()函数。这个函数将数据传递给模板,并将模板呈现为HTML。它需要三个参数:

    5. 的ID。< >脚本标签iframe.html包含模板(“org-template”<李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-jffHpj jHhdID gpoyWd">传递给模板的数据对象(orgData<李data-garden-id="typography.unordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-jffHpj jHhdID gpoyWd">标签的IDiframe.html将包含呈现的HTML (“内容”<李data-garden-id="typography.ordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-iNiQyp jHhdID eLzCct">

      添加renderTemplate ()函数定义后直接displayLeads ()函数定义:

                     
      函数renderTemplatetemplateIddataObjectdivId常量文档getElementByIdtemplateIdinnerHTML常量模板车把编译常量compiledHtml模板dataObject文档getElementByIddivIdinnerHTMLcompiledHtml
    6. 保存iframe.html而且main.js.要查看更改,请单击刷新图标。

      如果ZCLI服务器尚未运行,请参见<一个href="https://developer.zendesk.com/documentation/apps/build-an-app/build-your-first-sell-app/building-your-first-sell-app-part-2-designing-the-user-interface/">测试应用程序在本系列的第2部分中。

      类的HTML内容< div id = "内容" >标记。iframe.html文件:

    为错误消息创建模板

    如果应用程序在检索组织的线索或其他数据时遇到了问题,您希望用户看到一条错误消息,说明出了什么问题。

    1. iframe.html,将以下错误模板添加到org-template脚本标签:

                     
      <脚本id错误模板类型文本/ x-handlebars-template><p>状态-statusText错误请在下面的链接报告错误</p>脚本>

      该模板将显示一个HTTP状态错误消息,例如“404 - Not found error”。

      <李data-garden-id="typography.ordered_list_item" data-garden-version="8.39.0" class="sc-jNnpgg sc-iNiQyp jHhdID eLzCct">

      main.js,添加以下函数渲染模板:

                     
      函数displayError常量errorData“状态”404“statusText”“没有找到”renderTemplate“错误模板”errorData“内容”
    2. 调用displayError ()函数(高亮显示)从您的自调用函数:

                     
      函数常量客户端ZAFClient初始化客户端调用“调整”宽度“100%”高度“150 px”displayLeadsdisplayError
    3. 要测试它,请注释掉displayLeads ();使用双正斜杠,保存main.js而且iframe.html,然后刷新应用程序。

      与组织模板类似,Handlebars插入您的errorData对象放入错误模板并生成最终的HTML。的HTML内容< div id = "内容" >标签iframe.html

    如果要转到下一个教程,可以让ZCLI服务器继续运行。如果完成了这个会话,可以切换到命令行界面并按Ctrl+C来关闭服务器。

    在下一篇教程中,您将学习如何使用Sell api获取组织的数据。继续<一个href="https://developer.zendesk.com/documentation/apps/build-an-app/build-your-first-sell-app/building-your-first-sell-app-part-4-getting-data/">第4部分-获取数据

  • <一个href="https://support.zendesk.com/hc/en-us/community/topics" target="_blank" rel="noreferrer noopener" class="footer__LinkWithIcon-sc-1o148d7-4 gMsdeb"> 论坛<一个href="https://developerblog.zendesk.com" target="_blank" rel="noreferrer noopener" class="footer__LinkWithIcon-sc-1o148d7-4 gMsdeb"> 博客<一个href="https://docs.google.com/forms/d/e/1FAIpQLScm_rDLWwzWnq6PpYWFOR_PwMaSBcaFft-1pYornQtBGAaiJA/viewform" target="_blank" rel="noreferrer noopener" class="footer__LinkWithIcon-sc-1o148d7-4 gMsdeb"> 松弛 亚博加利福尼亚州旧金山市市场街989号,邮编:94103
    隐私政策<一个href="//www.ying8.net/company/agreements-and-terms/master-subscription-agreement/" target="_blank" rel="noreferrer noopener">条款和条件<一个href="https://status.zendesk.com" target="_blank" rel="noreferrer noopener">系统状态<一个href="#一个trust-show-cookie-settings" class="ot-sdk-show-settings" id="onetrust-show-cookie-settings">Cookie设置