ng-bind: 只能绑定一个变量

  在AngularJS中显示模型中的数据有两种方式:

  一种是使用花括号插值的方式:

  <p>{{titleStr}}</p>

  另一种是使用基于属性的指令,叫做ng-bind:

  <p><span ng-bind="titleStr"></span></p>

ng-bind-template:  可绑定多个变量    

<p ng-bind-template="{{titleStr}}&&{{titleStr2}}"></p>
$scope.titleStr = "angularjs中的title";
$scope.titleStr2 = "title";

输出结果:

ngBindTemplate(ng-bind-template)与ngBind不同之处在于:ngBind只能单个绑定变量,且变量无需使用双括号“{{}}”,而ngBindTemplate则可以绑定一个模板,模板中可以包含多个AngularJS的表达式:“{{expression}}”。

ng-bind-html: 

<p ng-bind-html="titleHtml"></p>
angular.module('myApp',[])
.controller('myCtrl',['$scope',function($scope){
$scope.titleHtml = "<h2>title</h2>";
}]);

上面这ng-bind-html写法不能将titleHtml显示出来,在控制台中会报如下错误:

https://docs.angularjs.org/error/$sce/unsafe  点开此链接,会给出错误的原因及解决方法;

ngBindHtml(ng-bind-html)可以将一个字符串以安全的方式插入到页面中并显示成Html。

ngBindHtml将强制使用angular-santitize服务进行安全检查,由于并非包含在AngualrJS核心库中,因此需要引入angular-santitize.js文件,并在定义ngModule时添加对于ngSantitize的依赖声明。

解决方法一:

  1、引入angular-santitize.js文件

2、将ngSanitize注入到module中

代码如下:

<script src="../angular-sanitize.min.js"></script>
<script>
angular.module('myApp',['ngSanitize']) <!--将ngSanitize注入到module中-->
.controller('myCtrl',['$scope',function($scope){
$scope.titleHtml = "<h2>title</h2>";
}]);
</script>

参考:http://www.tuicool.com/articles/Q7VNJj

解决方法二:

使用$sce服务,将$sce服务注入到controller中,再使用$sce的trustAsHtml方法

不需要引入额外的js文件,只需要将$sce服务注入到controller即可:

      angular.module('myApp',[])
.controller('myCtrl',['$scope','$sce',function($scope,$sce){
$scope.titleHtml = $sce.trustAsHtml("<h2>title</h2>");
}]);

ngBind ngBindTemplate ngBindHtml的更多相关文章

  1. ngBind {{}} ngBindTemplate

    1.首先我们最常使用的一个绑定表达式的指令是ngBind,比如在一个div标签中我们可以这样使用: <div ng-bind="vm.info"></div> ...

  2. AngularJs ngApp、ngBind、ngBindHtml、ngNonBindable

    ngApp 使用这个指令自动启动一个AngularJS应用.ngApp指令指定了应用程序的根节点,通常会将ngApp放置在网页的根节点如<body>或<html >标签的. 格 ...

  3. Angular - - ngApp、ngBind、ngBindHtml、ngNonBindable

    对于ng-系列的指令,每篇文章写2-5个吧,不然显得文章好短.... ngApp 使用这个指令自动启动一个AngularJS应用.ngApp指令指定了应用程序的根节点,通常会将ngApp放置在网页的根 ...

  4. {{ }} 和ng-bind

    花括号最后会转换成ng-bind,在一次加载数据的时候,显示花括号,所以使用ng-bind 或者ng-bind-html

  5. AngularJS 源码分析1

    AngularJS简介 angularjs 是google出品的一款MVVM前端框架,包含一个精简的类jquery库,创新的开发了以指令的方式来组件化前端开发,可以去它的官网看看,请戳这里 再贴上一个 ...

  6. angular源码分析:angular的整个加载流程

    在前面,我们讲了angular的目录结构.JQLite以及依赖注入的实现,在这一期中我们将重点分析angular的整个框架的加载流程. 一.从源代码的编译顺序开始 下面是我们在目录结构哪一期理出的an ...

  7. Angular源代码学习笔记-原创

    时间:2014年12月15日 14:15:10 /** * @license AngularJS v1.3.0-beta.15 * (c) 2010-2014 Google, Inc. http:// ...

  8. AngularJS1.X学习笔记2-数据绑定

    上一篇从整体上认识了Angular,从现在开始更加深入的学习Angular的特性.本次学习的是数据绑定.应该所有的MVC框架都会用到数据绑定,比如我所知道的ThinkPHP.struts等,只有实现了 ...

  9. 流行框架angular

    ---恢复内容开始--- 一.angular是什么 一款非常优秀的前端高级js框架,由谷歌团队负责开发 angular是通过新的属性和表达扩展了html angular可以构建一个单一页面应用程序(s ...

随机推荐

  1. crontab设置作业间隔执行问题

    这个源于有个网友问,crontab里   */40  9  *  *  *  是不是代表9点开始每40分钟执行?  直觉这个肯定不是从9:00开始每隔40分钟执行一次,但是也不能肯定它代表一个什么样的 ...

  2. linux shell 读取for循环中出现难处理的数据之单引号错误实例

    原语句: #!/bin/bash for test in I don't know if this'll work do echo "work:$test" done 结果: wo ...

  3. class.c 添加中文注释(2)

    /* Class Device Stuff */ int class_device_create_file(struct class_device * class_dev, const struct ...

  4. 自己开发一个 vsts agent 的 task

    vsts 中支持自定义Build/Release的过程Task 目标:做一个可以读取 Xamarin.Android 所生成的 APK 的 基本信息的 task ,包括 package(包名) / a ...

  5. EF 资料

    初级部分 入门教程   Learn Entity Framework(微软官方) http://www.entityframeworktutorial.net/     Fluent API http ...

  6. 学习大神笔记之“MyBatis学习总结(二)”

    MyBatis对表的增删改查操作         主要有两种方式:基于XML实现和基于注解实现. 完整项目结构: 工具类:MyBatisUtil-------用于获取  sqlsession pack ...

  7. Linux 下系统调用的三种方法

    系统调用(System Call)是操作系统为在用户态运行的进程与硬件设备(如CPU.磁盘.打印机等)进行交互提供的一组接口.当用户进程需要发生系统调用时,CPU 通过软中断切换到内核态开始执行内核系 ...

  8. 《Paxos Made Simple》翻译

    1 Introduction 可能是因为之前的描述对大多数读者来说太过Greek了,Paxos作为一种实现容错的分布式系统的算法被认为是难以理解的.但事实上,它可能是最简单,最显而易见的分布式算法了. ...

  9. Django 1.9 支持中文(转)

    昨天Django1.9发布了,今天我才刚开始学习Django,然后有一个问题就卡住了——如何支持中文?上网上查了好多资料都不好使,最后我搜索Django文件夹才发现,在1.9版本里,简体中文代码是zh ...

  10. Java的String中的subString()方法

    方法如下: public String substring(int beginIndex, int endIndex) 第一个int为开始的索引,对应String数字中的开始位置, 第二个是截止的索引 ...