聚合物表达
我正在尝试使用Polymer表达式来显示某些内容。
我有一个.php
文件,它打印出一个名为json_encoded的数组。 现在我看到它有三种可能性:
null
或其他内容 因此,根据返回的内容,我想显示相关性信息。
这可以通过使用<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问题的进一步阅读。
上一篇: Polymer expression
下一篇: Is there an accepted or emerging JSON form and field definition format?