离子html数据从数据库绑定

时间:2014-12-01 09:11:39

标签: angularjs cordova ionic-framework

我的数据库中有这个html。

<p>my data here. <b>bold a bit</b></p>

来自工厂的数据库

.factory('DataSingle', function($http, $q){
  var sContent = function(idc){
    var deferred = $q.defer();
    $http.get('http://mydomainrestserver/'+idc)
    .success(function(data, status, headers, config){
     deferred.resolve(data);
    });
     return deferred.promise;
  }
 return { sContent : sContent }
})

这是我的控制器

.controller('SingleCtrl', function($scope, $http, DataSingle, $stateParams){
 var single_id = $stateParams.ids;
 DataSingle.sContent(single_id).then(

 function(single){
  $scope.singledata = single;
   }
})

单击数据来自数据库。它呈现为文本而不是使用段落和粗体文本呈现。

我得到的只是视图中的简单测试

Title: Single page
Data: <p>my data here. <b>bold a bit</b></p>

数据已成功接收但未在我的设备上正确呈现。问题是,如何将html从查询结果呈现到离子内容视图?

2 个答案:

答案 0 :(得分:4)

在工厂

$scope.singledata = $sce.trustAsHtml(single);

in html

<span ng-bind-html="singledata" class="htmlComment"></span>

答案 1 :(得分:1)

显然,除非您使用$sce服务明确地将其标记为安全,否则出于安全原因会转义所有文本内容。所以你应该做的是:

$scope.singledata = $sce.trustAsHtml(single);

https://docs.angularjs.org/api/ng/service/$sce