AngularJS Expression in Expression

Existe-t-il un moyen de faire en sorte que AngularJS évalue une expression dans les données du modèle?

HTML:

<p> {{Txt}} </p> 

Maquette:

  { Txt: "This is some text {{Rest}}" } { Rest: "and this is the rest of it." } 

Le résultat final serait: This is some text and this is the rest of it .

Vous pouvez utiliser le service $interpolate pour interpoler la chaîne …

 function ctrl ($scope, $interpolate) { $scope.Txt = "This is some text {{Rest}}"; $scope.Rest = "and this is the rest of it."; $scope.interpolate = function (value) { return $interpolate(value)($scope); }; } 

 <div ng-app ng-controller="ctrl"> <input ng-model="Txt" size="60" /> <p>{{ Txt }}</p> <p>{{ interpolate(Txt) }}</p> </div> 

JSFiddle

Vous pouvez exécuter JS entre parenthèses:

 <p>{{Txt + ' ' + Rest}}</p> 

Ou créez une fonction qui renvoie le texte souhaité:

 $scope.getText = function() { return $scope.Txt + ' ' + $scope.Rest; } <p>{{getText()}}</p> 

Comme vous utilisez javascript pour le modèle, vous pouvez faire quelque chose de simple comme ceci:

 var rest = 'and this is the rest of it'; $scope.txt = 'This is some text ' + rest; 

Et dans la vue, conservez votre <p>{{txt}}</p>

Vous pouvez également lier les expressions ensemble <p>{{txt}} {{rest}}</p>