J'apprends angular.js et je définis La fonction ne fonctionne pas, mais cela fonctionne lorsque je viens de le définir sans fonction. P> J'essaie également de créer une directive de changement: p> Mais cela aussi ne fonctionne pas. Console.log n'exécute pas du tout. P> p>
ng-change code> et
ng-select code> avec
set () code> p>
5 Réponses :
Tout devrait fonctionner bien sans code supplémentaire: et c'est tout. Voici un stylo. p> p>
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).
É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.
Vous pouvez absolument utiliser 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>
<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;
};
}
J'ai exactement la même chose, mais j'ai défini NG-APP et NG-Controller sur HTML Objet. Si je définis $ portée.title code> dans le contrôleur le titre change mais pas si je le mettit dans une fonction.
ng-app code> peut être défini dans
code>,
ng-contrôleur code> devrait aller avec
La charge Jsfiddle et CodePen entraîne donc des iframes, de sorte que la section
@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
@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.
@madhead Il y a une raison de mettre à jour le titre avec l'URL.
@sza a mis à jour la question et a ajouté des explications supplémentaires.
@JCubic OK. Je pensais que les gars, parlaient de code>. Pouvez-vous nous montrer plein HTML, avec
code>,
@jcubic je suis en quelque sorte perdu ... mais je suis content que vous ayez eu votre problème résolu.
Utilisez $ rootscope
J'ai figuré une solution pour définir le titre dans main.js: p> application.html. ERB: p>
Lorsque vous traitez avec la balise de titre, vous devez utiliser NG-Bind-Modèle Donc, vous ne voyez pas l'expression dans son état brut {{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.
<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>
J'avais également dû ajouter
Consultez la réponse de Csharp Stackoverflow.com/a/24921980/243034 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.)