- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以使用 amp-bind
更新 anchor 的 [href]
。但是,如果我在 amp-list
模板中包含相同的 anchor ,则在应用模板时 [href]
似乎会被破坏(它由原始位置和 URI 预先设置)编码)。值得注意的是,字符串周围缺少单引号,导致表达式编译错误。
在下面的示例中,amp-list
之前的链接在按下按钮时更新正常,而 amp-list
模板生成的链接变得困惑。有趣的是,模板中的 anchor 仍然可以正常读取;只有在应用模板后,[href]
才会被破坏。
模板内的 anchor :
<a href="https://amp-test/" [href]="path ? 'https://amp-test/' + path.split(' ').join('-') : 'https://amp-test/'">{{linkName}}</a>
应用模板后的 anchor :
<a href="https://amp-test/" [href]="https://amp-test/path%20?%20%27https://amp-test/%27%20+%20path.split(%27%20%27).join(%27-%27)%20:%20%27https://amp-test/%27" target="_top" class="i-amphtml-error">one path</a>
因此,可能伴随标题问题的一些问题包括:amp-bind
操作是否应该在 amp-list
中工作?即我看到的是预期行为还是错误?
最小示例 ( jsfiddle )
results.json
{
"items": [
{ "linkName": "one path" },
{ "linkName": "two path" }
]
}
index.html
<!doctype html>
<html ⚡>
<head>
<title>amp-bind in amp-list</title>
<meta charset="utf-8">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<script async custom-element="amp-bind" src="https://cdn.ampproject.org/v0/amp-bind-0.1.js"></script>
<script async custom-element="amp-list" src="https://cdn.ampproject.org/v0/amp-list-0.1.js"></script>
<script async custom-template="amp-mustache" src="https://cdn.ampproject.org/v0/amp-mustache-0.1.js"></script>
<link rel="canonical" href="https://cmphys.com/">
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1">
<style amp-boilerplate>body{-webkit-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-moz-animation:-amp-start 8s steps(1,end) 0s 1 normal both;-ms-animation:-amp-start 8s steps(1,end) 0s 1 normal both;animation:-amp-start 8s steps(1,end) 0s 1 normal both}@-webkit-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-moz-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-ms-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@-o-keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}@keyframes -amp-start{from{visibility:hidden}to{visibility:visible}}</style><noscript><style amp-boilerplate>body{-webkit-animation:none;-moz-animation:none;-ms-animation:none;animation:none}</style></noscript>
<style amp-custom>
</style>
</head>
<body>
<button on="tap:AMP.setState({path: 'relative path'})">Update</button>
<hr>
<p>
<a href="https://amp-test/" [href]="path ? 'https://amp-test/' + path.split(' ').join('-') : 'https://amp-test/'">link</a>
</p>
<hr>
<amp-list id="myList" class="list" layout="fixed" width="200" height="100" src="/results.json">
<template type="amp-mustache">
<a href="https://amp-test/" [href]="path ? 'https://amp-test/' + path.split(' ').join('-') : 'https://amp-test/'">{{linkName}}</a><br>
</template>
</amp-list>
</body>
</html>
最佳答案
尝试使用 Sanitizers操纵您帖子的 AMP 内容。为此,您应该避免使用可能无法通过 AMP 验证程序的禁止 URL 协议(protocol)或表达式。
关于 amp-list 中的 amp-bind 操作,您可能需要查看此 documentation其中提到绑定(bind)到 <amp-list>
组件和属性是允许的,它的行为是:
If expression is a string, fetches and renders JSON from the string URL. If expression is an object or array, renders the expression data.
关于amp-html - 如何在 amp-list 模板中执行字符串操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46286976/
我是一名优秀的程序员,十分优秀!