javascript - 无法更改表格的内部 HTML

标签 javascript angularjs innerhtml

我是 AngularJS 的新手。我在更改 table 的内部 HTML 时遇到困难。我将一个字符串存储在一个变量中,该字符串包括 3 类型的标签 strong 标签这很好用,还有两个标签 tr td 当我用 JavaScript 变量替换表的内部值时,它不会将 trtd 标记转换为 DOM 元素。

这是我的 JavaScript 代码:

var app = angular.module('myApp', ['ngSanitize']);
app.controller('personCtrl',  function($scope,$http) 
{    
   $scope.fun = function() 
   {
      varible="<tr><td><strong>Id</strong></td><td><strong>ahmed</strong></td><td><strong>45kg</strong></td></tr>";
      $scope.bind=varible;
   };
});

这是我的 HTML 代码

  <div ng-app="myApp" ng-controller="personCtrl">
     <table  ng-bind-html="bind">
     </table>
     <button ng-click="fun()">check</button>
  </div>

最佳答案

您需要使用 $sce将该字符串作为 html 信任,否则 Angular 不会使用它们,因为不安全:

JSFiddle

app.controller('dummy',  function($scope,$sce) 
{    
   $scope.fun = function() 
   {
      varible="<tr><td><strong>Id</strong></td><td><strong>ahmed</strong></td><td><strong>45kg</strong></td></tr>";
      $scope.bind = $sce.trustAsHtml(varible);
   };
});

最好使用指令,这是一个非常简单的例子:

Directive JSFiddle

HTML:

<div ng-app="app" ng-controller="dummy">
  <table><custom-table ng-show="bind"></custom-table></table>
  <button ng-click="bind=true">check</button>
</div>

JS:

app.directive('customTable',
    function(){
        return {
            restrict: 'AE',
            template: '<tr><td><strong>Id</strong></td><td><strong>ahmed</strong></td><td><strong>45kg</strong></td></tr>',
            link: function(scope, element, attr) {
                //If you need do something here
            }
        };
});

关于javascript - 无法更改表格的内部 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34199106/

相关文章:

javascript - 验证解密的字符串

javascript - 从不同的对象内部调用对象中的方法?

javascript - 动态检索 JavaScript 属性值

javascript - 不允许使用 AngularJS 和 Go POST 请求方法

html - 通过 innerHTML 输入时,span 不应用 css 样式

javascript - 如何捕获用户自己进行的手动下拉更改?

javascript - 如何在 Angular 中删除 JSON 对象中的对象?

javascript - 如何使用这些片段在我的 app.config 中实现解析?

javascript - XSS 预防和 .innerHTML

javascript - 仅在特定 div 中使用 javascript 更改链接的一部分