1

Ich versuche, Interpolationskonzepte in Angular JS zu verstehen, und ich habe diesen Code geschrieben. Ich versuche, einen Text im Eingabefeld einzugeben und basierend auf der Vorlage im Textbereich-Tag sollte die Variable ersetzt und die letzte Nachricht dynamisch im previewText-Feld aktualisiert werden. Wie man das erreicht.Interpolation in Angular JS

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular.min.js"></script> 
<meta charset=utf-8 /> 
<title>JS Bin</title> 
</head> 
<body ng-app="myApp"> 
<div ng-controller="MyController"> 
<input ng-model="to" 
     type="email" 
     placeholder="Recipient" /> 
<textarea ng-model="emailBody"></textarea> 
<pre>{{ previewText }}</pre> 
</div> 
</body> 
<script> 
angular.module('myApp', []).controller('MyController',function($scope, $interpolate) { 
    $scope.to = 'text'; //static value.Trying to make this dynamic. How  to achieve it?? 
//  $scope.$watch('to',function(newValue,oldValue,scope) 
    //{ 
    //$scope.to = $interpolate($scope.to)($scope); 
    //}); 
    $scope.emailBody = 'Hello {{ to }},My name is Ari too!'; 
    // Set up a watch 
    $scope.$watch('emailBody', function(body) { 
    if (body) { 
     var template = $interpolate(body); 
     $scope.previewText = 
     template({to: $scope.to}); 
    } 
    }); 
    }); 



</script> 
</html> 

Antwort

1

einfach Ihre $scope.watch entfernen und ersetzen sie durch

$scope.update = function() { 
    $scope.previewText = $interpolate($scope.emailBody)($scope); 
}; 
$scope.update(); 

dann

ng-change="update()" 

sowohl> Ihre <input> und <textarea hinzuzufügen.

Beachten Sie, dass <input type="email"> das Modell to nur gültig ist und festgelegt wird, wenn der Eingabewert eine E-Mail-Adresse ist, mit Ausnahme des Anfangszustands.

http://plnkr.co/edit/AOR6a7TAYhoXYSnJh2r4?p=preview

+0

Danke. Das hat funktioniert :) Kannst du mir bitte Vorschläge für Material unterbreiten, wo ich verstehen kann, Konzepte in Winkel besser zu interpolieren? – ang123

+0

@ ang123 Sie scheinen sie ziemlich gut zu verstehen. Alles, was Sie bisher vermisst haben, war ein Hook, um 'Vorschautext' zu aktualisieren, wenn sich das 'to' Modell geändert hat – Phil