10
votes

Comment lier les données dans l'élément de titre à l'aide de Angular.js

J'apprends angular.js et je définis {{title}} </ title> </ code> et j'essaie de changer cela à l'aide d'un élément de sélection <pré> xxx </ pré> p> i essaye <code> ng-change </ code> et <code> ng-select </ code> avec <code> set () </ code> </ p> <pré> xxx </ pré> <p > La fonction ne fonctionne pas, mais cela fonctionne lorsque je viens de le définir sans fonction. </ P> <p> J'essaie également de créer une directive de changement: </ p> <pré> xxx </ pré> <p> Mais cela aussi ne fonctionne pas. Console.log n'exécute pas du tout. </ P> </ p> </div> <!-- tags --> <div class="d-flex mt-1"> <div class=""> <a class="badge badge-info" href="/tag/javascript">javascript</a> <a class="badge badge-info" href="/tag/angularjs">angularjs</a> <a class="badge badge-info" href="/tag/angularjs-directive">angularjs-directive</a> </div> </div> <hr> <!-- comments --> <div class="pl-5"> <small class="text-muted">1 commentaires</small> <div class="comments mt-3"> <p>Consultez la réponse de Csharp <a href="http://stackoverflow.com/a/24921980/243034"> Stackoverflow.com/a/24921980/243034 </a> Cela permettra à votre site Web d'être indexé correctement et d'afficher dans la recherche. résultats avec une valeur par défaut correcte plutôt que d'apparaître comme {{application.title}} (ou tout ce que vous choisissez.)</p> <hr> </div> </div> </div> <div class=""> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5975820494937925" data-ad-slot="2186005983" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <!-- Answers --> <p class="mt-4 font-weight-bold">5 Réponses :</p> <hr> <div class="row mt-3"> <div class="col-lg-1 col-md-2 col-2 col-sm-2 text-center pt-1 mx-0 px-0"> <div class="badge badge-score"> 2<br> votes </div> </div> <div class="col-lg-11 col-md-10 col-10 col-sm-10"> <div class="body-content"> <p> Tout devrait fonctionner bien sans code supplémentaire: <pré> xxx </ pré> <p> et c'est tout. <a href="http://cdpn.io/bwknb" rel="nofewe"> Voici un stylo. </a> </ p> </ p> </div> <hr> <!-- comments --> <div class="pl-5"> <small class="text-muted">1 commentaires</small> <div class="comments mt-3"> <p class="answer-comment"> Non, c'est une politique de CodePen. Il ne montre pas le titre réel car le stylo est chargé dans iframe (et le titre est annexé comme premier enfant au corps). Creusez-la avec Dev Outils et voyez qu'il change, ou essayez l'exemple sur votre propre. (J'utilise Yeoman avec un générateur angulaire pour des tests rapides). </p> <hr> </div> </div> </div> </div> <hr> <div class="row mt-3"> <div class="col-lg-1 col-md-2 col-2 col-sm-2 text-center pt-1 mx-0 px-0"> <div class="badge badge-score"> 3<br> votes </div> </div> <div class="col-lg-11 col-md-10 col-10 col-sm-10"> <div class="body-content"> <p> Étant donné que @madhead vous a donné une réponse géniale, je veux simplement faire de la lumière sur votre question sur la raison pour laquelle votre code ne fonctionne pas. <p> Vous pouvez absolument utiliser <code> NG-Change code>, s'il vous plaît Jetez un coup d'œil à ce code. Votre approche est très proche et je suppose que vous avez peut-être manqué quelque chose? P> <pre><ul ng-app="myapp" ng-controller="MainCtrl"> <div>{{title}}</div> <select ng-model="user.title" ng-change="set()"> <option value="Lorem">Lorem</option> <option value="Ipsum">Ipsum</option> <option value="Dolor">Dolor</option> </select> </ul> function MainCtrl($scope) { $scope.set = function () { $scope.title = $scope.user.title; }; } </pre></code></p></p> </div> <hr> <!-- comments --> <div class="pl-5"> <small class="text-muted">9 commentaires</small> <div class="comments mt-3"> <p class="answer-comment"> J'ai exactement la même chose, mais j'ai défini NG-APP et NG-Controller sur HTML Objet. Si je définis <code> $ portée.title </ code> dans le contrôleur le titre change mais pas si je le mettit dans une fonction. </p> <hr> <p class="answer-comment"> <code> ng-app </ code> peut être défini dans <code> <html> </ code>, <code> ng-contrôleur </ code> devrait aller avec <code> <corps> </ code> je suppose , s'il vous plaît essayez. </p> <hr> <p class="answer-comment"> La charge Jsfiddle et CodePen entraîne donc des iframes, de sorte que la section <code> <tête> </ code> ne peut pas être testée correctement avec ces awesomes. </p> <hr> <p class="answer-comment"> @jcubic Je pense que vous avez réellement élevé une question très intéressante sur la façon de mettre à jour les méta-champs de la tête HTML ... Hmm ... Je ne suis pas sûr, peut-être qu'il y a une solution hacky. Peut-être devriez-vous reformuler la question pour demander comment lier les données dans <code> <titre> </ code> à la place? </p> <hr> <p class="answer-comment"> @sza pas un problème de les mettre à jour, mais quelle est la raison? Les mots-clés et la description sont lus par des bots; Mise à jour de la politique de cache / brandit avec des sons angulaires un peu bizarre. </p> <hr> <p class="answer-comment"> @madhead Il y a une raison de mettre à jour le titre avec l'URL. </p> <hr> <p class="answer-comment"> @sza a mis à jour la question et a ajouté des explications supplémentaires. </p> <hr> <p class="answer-comment"> @JCubic OK. Je pensais que les gars, parlaient de <code> <meta> </ code>. Pouvez-vous nous montrer plein HTML, avec <code> <html> </ code>, <code> <tête> </ code> et tous les éléments, car le diable est dans les détails. </p> <hr> <p class="answer-comment"> @jcubic je suis en quelque sorte perdu ... mais je suis content que vous ayez eu votre problème résolu. </p> <hr> </div> </div> </div> </div> <hr> <div class="row mt-3"> <div class="col-lg-1 col-md-2 col-2 col-sm-2 text-center pt-1 mx-0 px-0"> <div class="badge badge-score"> 4<br> votes </div> </div> <div class="col-lg-11 col-md-10 col-10 col-sm-10"> <div class="body-content"> <p> Utilisez $ rootscope <pré> xxx </ pré> </ p> </div> <hr> <!-- comments --> <div class="pl-5"> <small class="text-muted">0 commentaires</small> <div class="comments mt-3"> </div> </div> </div> </div> <hr> <div class="row mt-3"> <div class="col-lg-1 col-md-2 col-2 col-sm-2 text-center pt-1 mx-0 px-0"> <div class="badge badge-score"> 3<br> votes </div> </div> <div class="col-lg-11 col-md-10 col-10 col-sm-10"> <div class="body-content"> <p> J'ai figuré une solution pour définir le titre dans <code> <titre> </ code> tag. <p> main.js: </ p> <pré> xxx </ pré> <p> application.html. ERB: </ p> <p> <code> <titre ng-bind = "'myApp -' + $ rootle.title"> </ titter> </ p> </ p> </ p> </ p> </ P> </ P> </ P> </ P> </ P> </ P> </ P> </div> <hr> <!-- comments --> <div class="pl-5"> <small class="text-muted">0 commentaires</small> <div class="comments mt-3"> </div> </div> </div> </div> <hr> <div class="row mt-3"> <div class="col-lg-1 col-md-2 col-2 col-sm-2 text-center pt-1 mx-0 px-0"> <div class="badge badge-score"> 19<br> votes </div> </div> <div class="col-lg-11 col-md-10 col-10 col-sm-10"> <div class="body-content"> <p> Lorsque vous traitez avec la balise de titre, vous devez utiliser <a href="htttps://docs.angularjs.org/api/ng/directive/ngBindtemplate" rel="noreferrer"> NG-Bind-Modèle </a> Donc, vous ne voyez pas l'expression dans son état brut <code> {{quelquevar}} code> avant que Angular ait une chance de lancer. Vous pouvez ajouter le texte initial du titre dans la balise de titre et ce sera écrasé par votre modèle. <pre><html data-ng-app="app"> <head> <title ng-bind-template="My App - {{title}}">My App - Default Title</title> </head> <body> {{title}} <select ng-model="title"> <option value="Lorem">Lorem</option> <option value="Ipsum">Ipsum</option> <option value="Dolor">Dolor</option> </select> </body> </html> </pre></code></p> </div> <hr> <!-- comments --> <div class="pl-5"> <small class="text-muted">1 commentaires</small> <div class="comments mt-3"> <p class="answer-comment"> J'avais également dû ajouter <code> <tête ng-contrôleur "myController"> </ code> attribuer sur l'élément </ code> </ code> pour obtenir le fonctionnement. </p> <hr> </div> </div> </div> </div> <hr> </div> <div class="col-lg-3 col-md-12 col-12 col-sm-12" > <div class="related"> <iframe src="https://rcm-eu.amazon-adsystem.com/e/cm?o=8&p=12&l=ez&f=ifr&linkID=b777da379e25dfc65f34887292b82918&t=birdy0c-21&tracking_id=birdy0c-21" width="300" height="250" scrolling="no" border="0" marginwidth="0" style="border:none;" frameborder="0"></iframe> <p class="font-weight-bold">Articles qui pourrait vous intéresser :</p> <a href="/question/impossible-d-39-importer-le-module-quot-angular-material-quot" class=""> Impossible d'importer le module "@ angular / material" </a> <hr> <a href="/question/interaction-profonde-avec-break-and-catch" class=""> Interaction profonde avec break and catch </a> <hr> <a href="/question/utilisation-de-node-js-comment-renommer-tous-les-fichiers-d-39-un-dossier" class=""> Utilisation de node.js comment renommer tous les fichiers d'un dossier </a> <hr> <a href="/question/google-chrome-uncaught-promis-domexception-lors-de-la-lecture-audio" class=""> Google Chrome Uncaught (promis) DOMException lors de la lecture AUDIO </a> <hr> </div> <div class=""> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5975820494937925" data-ad-slot="4267220326" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> </div> <script type="text/javascript" src="/js/purecookie.js"></script> </div> <div class="container col-lg-8 col-md-12 ads-footer"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-5975820494937925" data-ad-slot="5580301997" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </body> <footer> <div class="row col-lg-12 col-md-12 text-muted"> © 2020 www.devfaq.fr - Licensed under <a href="https://creativecommons.org/licenses/by-sa/3.0/" rel="license"> cc by-sa 3.0 </a>  with <a href="https://stackoverflow.blog/2009/06/25/attribution-required/" rel="license"> attribution required</a>. </div> </footer> </html>