AngularJS:输出从控制器返回的HTML,显示HTML代码

杰格拉沃瓦斯

我有一个状态字段,想显示一个图标而不是数据库中的值。最终,这将在表行的ng-repeat中进行。我对作用域函数进行了编码,以便在基于$ scope值时返回图标(根据需要着色),但它显示的是实际的HTML代码而不是图标。我尝试了使用3个花括号的Handlebar技巧,但是Angular却没有。

我该如何返回图标而不是HTML,或者Angular是否有更好的方法来完成“动态”图标。

这是我的控制器:

var app = angular.module('app',[]);

app.controller('MainController', function($scope){

  $scope.getStatus = function(val){
    switch(val){
    case 'I':
      return '<span class="glyphicon glyphicon-wrench" tooltip="In_Progress" style="color: #000099;"></span>';
      break;
    case 'R':
      return '<span class="glyphicon glyphicon-share-alt" tooltip="Recommended"></span>';
      break;
    case 'A':
      return '<span class="glyphicon glyphicon-thumbs-up" tooltip="Approved" style="color: #009900;"></span>';
      break;
    case 'D':
      return '<span class="glyphicon glyphicon-thumbs-down" tooltip="Denied" style="color: #990000;"></span>';
      break;
    case 'W':
      return '<span class="glyphicon glyphicon-remove-sign" tooltip="Withdrawn" style="color: #E0A02D;"></span>';
      break;
    case 'P':
      return '<span class="glyphicon glyphicon-ok" tooltip="Paid" style="color: #009900;"></span>';
      break;
    }
  };

}); // end MainController

和我的HTML

<body ng-controller="MainController">
    <table style="width:50%; margin:0 auto;">
      <tr>
        <td style="text-align:center;">
            {{ getStatus("I") }}
        </td>
      </tr>
    </table>
</body>

我也有一个Plunker,但是plunker并没有真正地制作glyphicons。

托马斯·杜特里翁

我相信您需要将绑定从默认绑定更改为html绑定,以免逃脱。

从:

<body ng-controller="MainController">
<table style="width:50%; margin:0 auto;">
  <tr>
    <td style="text-align:center;">
        {{ getStatus("I") }}
    </td>
  </tr>
</table>
</body>

到:

<body ng-controller="MainController">
<table style="width:50%; margin:0 auto;">
  <tr>
    <td style="text-align:center;" ng-bind-html="getStatus('I')"></td>
  </tr>
</table>
</body> 

参见ngBindHtml

您还需要在html中添加ngSanitize:

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-sanitize.js"></script>

并在您的应用程序需求中:

var app = angular.module('app',['ngSanitize']);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

代码组织AngularJS的巨大控制器

来自分类Dev

无法从控制器返回HTML

来自分类Dev

AngularJS如何动态添加HTML并绑定到控制器

来自分类Dev

Angular JS:控制器属性未在html中显示

来自分类Dev

AngularJS控制器返回值

来自分类Dev

从index.html javascript调用angularJS控制器函数

来自分类Dev

使控制器根据请求类型返回HTML或JSON

来自分类Dev

AngularJS控制器显示错误

来自分类Dev

HTML.BeginForm不将值返回给控制器

来自分类Dev

``控制器''的AngularJS代码无法启动

来自分类Dev

在angularjs中将变量从控制器传递到html

来自分类Dev

控制器变量无法正确显示在html中

来自分类Dev

如何从html内的AngularJS控制器求值的变量?

来自分类Dev

春季启动2:HTML内容的控制器输出

来自分类Dev

比较HTML页面中从angularJS控制器定义的变量

来自分类Dev

从index.html javascript调用angularJS控制器函数

来自分类Dev

AngularJS在获取HTML元素的控制器中引用表单

来自分类Dev

从C#控制器以Angular输出HTML

来自分类Dev

AngularJS控制器未显示

来自分类Dev

如何使用angularjs显示从控制器返回的json数据

来自分类Dev

控制器变量无法正确显示在html中

来自分类Dev

如何从html内的AngularJS控制器求值的变量?

来自分类Dev

如何将HTML代码传递给控制器

来自分类Dev

如何使用ajax从控制器返回HTML?

来自分类Dev

从控制器返回的HTML内容中传递模型数据

来自分类Dev

HTML 代码不显示输出

来自分类Dev

Codeigniter 的控制器数据总是显示在 html 的顶部

来自分类Dev

从 Spring 控制器返回 HTML 页面

来自分类Dev

如何从控制器切换到 html 代码?