Javascript 使用angularjs指令操纵范围值

Javascript 使用angularjs指令操纵范围值,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我的模型包含一些我想在向用户显示之前修改的值。也许这是写在文件里的,我看不见了 假设我想这样显示我的变量 <span decode-directive>{{variable}}</span> var app = angular.module('plunker', ['ngSanitize']); app.controller('MainCtrl', function($scope) { $scope.name = 'S&ouml;ren'; }); {{

我的模型包含一些我想在向用户显示之前修改的值。也许这是写在文件里的,我看不见了

假设我想这样显示我的变量

<span decode-directive>{{variable}}</span>
var app = angular.module('plunker', ['ngSanitize']);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'S&ouml;ren';
});
{{variable}
我想写decode指令,它应该显示variable+1234f.e

我在几点上需要它,所以我不能只为一个特殊对象编写代码。

我希望你能帮我解决这个问题

您可以使用角度过滤器进行此操作。如果变量始终是html编码的文本,则解决方案的示例如下:

filter('html',function($sce){
    return function(input){
        return $sce.trustAsHtml(input);
    }
})
然后在html中,您可以使用:

<span ng-bind-html="var | html"></span>

您可以为此使用角度过滤器。如果变量始终是html编码的文本,则解决方案的示例如下:

filter('html',function($sce){
    return function(input){
        return $sce.trustAsHtml(input);
    }
})
然后在html中,您可以使用:

<span ng-bind-html="var | html"></span>

您只需使用ngSanitize库,并将其作为依赖项包含在您的应用程序中,如下所示

<span decode-directive>{{variable}}</span>
var app = angular.module('plunker', ['ngSanitize']);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'S&ouml;ren';
});
HTML

<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script>
    <script data-require="ngSanitize@*" data-semver="1.3.15" src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-sanitize.js"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <p>{{name}}!</p>

    <span ng-bind-html="name"></span>
  </body>

</html>

安古拉斯普朗克
{{name}}


您只需使用ngSanitize库,并将其作为依赖项包含在您的应用程序中,如下所示

<span decode-directive>{{variable}}</span>
var app = angular.module('plunker', ['ngSanitize']);

app.controller('MainCtrl', function($scope) {
  $scope.name = 'S&ouml;ren';
});
HTML

<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>
    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script>
    <script data-require="ngSanitize@*" data-semver="1.3.15" src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-sanitize.js"></script>
    <script src="app.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <p>{{name}}!</p>

    <span ng-bind-html="name"></span>
  </body>

</html>

安古拉斯普朗克
{{name}}


为什么不执行{{variable+'1234'}}?如果您确实需要计算/将要更改某些内容,您应该这样做,然后在指令上选择变量并更改元素textyes我需要将变量中的字符串转换为可读字符串您可以显示变量值和预期html输出的示例吗?变量例如sö;ren输出应该是Sören。不带空格的变量。但是堆栈溢出将正确呈现。您可以使用ng模型而不是{{},然后在指令ngModel中:'='。如果不清楚,请告诉我。我希望这有帮助。当做你为什么不做{{variable+'1234'}呢?如果您确实需要计算/将要更改某些内容,您应该这样做,然后在指令上选择变量并更改元素textyes我需要将变量中的字符串转换为可读字符串您可以显示变量值和预期html输出的示例吗?变量例如sö;ren输出应该是Sören。不带空格的变量。但是堆栈溢出将正确呈现。您可以使用ng模型而不是{{},然后在指令ngModel中:'='。如果不清楚,请告诉我。我希望这有帮助。当做