2016-03-17 77 views
0

我的模型包含一些值,我想在將其顯示給用戶之前進行修改。也許這是寫在文檔中,我會盲目看到它。使用angularjs指令操作範圍值

可以說,我要展示我的變量這樣

<span decode-directive>{{variable}}</span> 

我想寫的譯碼指令,它應該顯示變量+ 1234 F.E.

我需要這個在幾點,所以我不能編碼只有一個特殊的對象。
我希望你能幫助我解決這個問題。

+0

爲什麼難道你不這樣做{{變量+ '1234'}}?如果這是你真的需要計算/將改變的東西,你應該做,然後在指令上選擇變量並更改元素文本 – juvian

+0

是的我需要將字符串轉換爲該變量爲可讀的字符串 – dominic

+0

您能否顯示一個變量值和預期的html輸出的例子? – juvian

回答

1

你只需要使用ngSanitize庫,並在CLUDE如依賴於你的應用程序是這樣

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="[email protected]" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script> 
    <script data-require="[email protected]*" 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> 
+0

感謝這似乎很好。 – dominic

1

你可以使用角度過濾器。如果您的變量總是HTML編碼的文本,該解決方案的一個例子是:

filter('html',function($sce){ 
    return function(input){ 
     return $sce.trustAsHtml(input); 
    } 
}) 

然後在HTML中你可以使用:

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

小提琴:

angular.module("app",[]) 
 

 
    .filter('html',function($sce){ 
 
     return function(input){ 
 
      return $sce.trustAsHtml(input); 
 
     } 
 
    }) 
 

 
.controller("main", function($scope){ 
 
$scope.var= "&lt;S&ouml;ren" 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app"> 
 
<div ng-controller="main" > 
 
<span ng-bind-html="var | html"></span> 
 
</div>