簡體   English   中英

在ng-bind-html中獲取打印值

[英]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>&deg;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>&deg;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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM