2017-10-18 5 views
1

Est-il possible de régler l'état AMP en utilisant amp-position-observateur?Amp-html - Puis-je utiliser amp-position-observer pour appeler AMP.setState() utilisé dans amp-bind?

J'ai essayé le code suivant sans succès:

<!doctype html> 
<html ⚡> 
<head> 
    <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 custom-element="amp-position-observer" src="https://cdn.ampproject.org/v0/amp-position-observer-0.1.js" async></script> 
</head> 

<body> 
    <p [text]="'Hello ' + foo">Hello World</p> 
    <div class="spacer"></div> 
    <amp-position-observer 
    intersection-ratios="0" 
    on="enter:AMP.setState({foo: 'amp-bind'})" 
    layout="nodisplay"> 
    </amp-position-observer> 

</body> 
</html> 
+0

La solution adoptée est expliquée dans le fil GitHub relatif: https://github.com/ampproject/amphtml/issues/11735 – Gab

Répondre

2

Il est impossible par la conception. setState est une action puissante (de confiance élevée) qui ne peut être déclenchée que par une interaction directe de l'utilisateur. Le défilement n'est pas considéré comme un signal d'interaction utilisateur fort. Actuellement, l'observateur de position peut uniquement déclencher des actions de faible confiance telles que lire ou rechercher une animation d'ampli ou des vidéos.