<!DOCTYPE html> <html lang="zh-CN" ng-app="app"> <head> <meta charset="utf-8"> <title>字符串插值</title> <link rel="stylesheet" href="../bootstrap.min.js"> </head> <body ng-controller="myController"> To: <input type="text" ng-model="to" placeholder="输入联系人"> <br> email: <br> <textarea ng-model="emailBody"></textarea> <br> <!-- 第二个例子这里需要修改为 ‘_ _’这个符号 --> 预览: <pre>_previewText_</pre> <script src="../angular.min.js"></script> <script> // 字符串插值 这里演示将$interpolate封装为services的用法
// angular.module('app', []) // .controller('myController', function($scope, $interpolate) { // 直接使用$interpolate的演示 // $scope.$watch('emailBody', function(body) { // console.log(body) // if(body) { // var template = $interpolate(body); // $scope.previewText = template({ to: $scope.to }); // } // }) // }) // 修改标识表达式的符号{{ }}为_ _ , 查看这个例子 需要将html中的{{ }} 改为_ _ angular.module('app', []) .config(['$interpolateProvider', function($interpolateProvider) { $interpolateProvider.startSymbol('_'); $interpolateProvider.endSymbol('_'); } ]) .factory('EmailParser', ['$interpolate', function($interpolate) { // 也可以将 $interpolate 封装成为一个services return { parse: function(text, contact) { var template = $interpolate(text); return template(contact); } } } ]) .controller('myController', ['$scope', 'EmailParser', function($scope, EmailParser) { $scope.$watch('emailBody', function(body) { if(body) { $scope.previewText = EmailParser.parse(body, { to: $scope.to }) } }) } ]) </script> </body> </html>