[英]Get printed value in ng-bind-html
我需要獲取文本,就像在ng-bind-html
上格式化一樣,但是在一個角度變量中。 有點難以用文字解釋,看看這段代碼是否易於理解和小提琴:
var testApp = angular.module('TestApp', []);
testApp.controller('TestController', function($scope, $sce) {
$scope.wrappedValue = $sce.trustAsHtml('asdf<div>°C<br />aaa</div>'); //this is my input
var data = $scope.wrappedValue;
console.log(data); //here I want to get printed: "asdf\n°C\naaa"
});
http://jsfiddle.net/r565nb2p/3/
我很感激你注意閱讀這個。 謝謝
我在CodePen.io上做了一個示例,它顯示了解析此文本的兩種不同方法。
第一次嘗試:
var data = 'asdf<div>°C<br />aaa</div>';
var tempDiv = document.createElement('div');
tempDiv.innerHTML = data;
console.log(tempDiv.innerText || tempDiv.textContent);
正如您在此嘗試中所看到的,我使用的是從未添加到DOM的tempDiv。 但是,由於我們設置innerHTML來保存數據變量的確切值,我們可以在其上調用innerText / textContent。
第一個結果在你想要的東西上略有不同,它沒有單獨的'°C'線。
第二次嘗試
$timeout(function() {
var iCanHaveAnId = document.getElementById('iCanHaveAnId');
console.log(iCanHaveAnId.innerText || iCanHaveAnId.textContent);
});
正如您所料,這一行會產生三行。 它利用$ timeout來允許Angular首先消化所有內容,然后轉到使用ng-bind-html指令標記的div#iCanHaveAnId,並獲取其內容。
希望其中一種策略可以幫到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.