聚合物表达

我正在尝试使用Polymer表达式来显示某些内容。

我有一个.php文件,它打印出一个名为json_encoded的数组。 现在我看到它有三种可能性:

  • 名称列表得到正确返回
  • 在数据库中没有找到名称,因此打印出null或其他内容
  • 在php文件中发生错误
  • 因此,根据返回的内容,我想显示相关性信息。

    这可以通过使用<template if="{{conditionalValue}}"> 。 这是我拥有的:

    <template if="{{people != null}}">
        <template repeat="{{person in people}}">
            <name-card name="{{person.name}}">
            </album-card>
        </template>
    </template>
    
    <template if="{{people == null}}">
        <div>There are no people listed.</div>
    </template>
    

    这似乎并不奏效。 当.php文件返回一个列表时,顶层模板都会被执行,并且我得到一个<name-card>元素的完整列表。 但是,在php文件中,当我为测试度量echo json_encode(null) ,根本没有任何显示。 所以我必须在我的conditionalValue上做错了什么。 我如何测试这是否是一个包含元素的数组?

    另外,有没有一种方法来测试非JSON内容,以防错误的PHP脚本?


    使用例如Chrome的开发人员控制台(或其他工具)来查看对PHP脚本的调用实际返回的内容(因为“ null或其他”有点模糊。)

    然后在某个时间点记录people属性的内容,以查看其中的实际内容。 我怀疑这个属性真的是null 。 大概是它的东西像""[] (甚至"null" )。

    如果people确实是空的,那么你的代码工作正常。 可以用一个只包含两个模板的小测试元素来验证这一点,并直接在created()函数中设置people属性。

    在所有其他情况下,这取决于。 如果空例是一个空数组,你可以写例如:

    <template if="{{people.length > 0}}">
    

    <template if="{{people.length == 0}}">
    

    对于你关于非json响应错误的问题:这取决于。 如果您自己使用JSON.parse()解析JSON内容,那么它将在出现错误时引发异常。 如果您使用core-ajax ,则其当前实现会捕获该错误,并记录警告并返回XHR响应文本。 所以你可能想扩展这个元素并覆盖jsonHandler()函数。 或者使用core-xhr并自己实现JSON解析。

    处理错误的最佳方式是始终返回有效的JSON响应(使用"error""message"等属性)并使用HTTP状态码。 看到这个SO问题的进一步阅读。

    链接地址: http://www.djcxy.com/p/48071.html

    上一篇: Polymer expression

    下一篇: Is there an accepted or emerging JSON form and field definition format?