码迷,mamicode.com
首页 > Web开发 > 详细

html 绑定

时间:2015-08-17 21:21:35      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

  html 绑定


 

目的

html绑定到DOM元素上,使得该元素显示的HTML值为你绑定的参数。如果在你的view model里声明HTML标记并且render的话,那非常有用。

 

例子

<div data-bind="html: details"></div> 

<script type="text/javascript">
var viewModel = {
details: ko.observable() // Initially blank
};

viewModel.details("<em>For further details, view the report <a href=‘report.html‘>here</a>.</em>");
// HTML content appears
</script>

 

参数

    主参数

    KO设置该参数值到元素的innerHTML属性上,元素之前的内容将被覆盖。

    如果参数是监控属性observable的,那元素的内容将根据参数值的变化而更新,如果不是,那元素的内容将只设置一次并且以后不在更新。

    如果你传的是不是数字或者字符串(例如一个对象或者数组),那显示的文本将是yourParameter.toString()的等价内容。

    其它参数

        无

 

注:关于HTML encoding

因为该绑定设置元素的innerHTML,你应该注意不要使用不安全的HTML代码,因为有可能引起脚本注入攻击。如果你不确信是否安全(比如显示用户输入的内容),那你应该使用text绑定,因为这个绑定只是设置元素的text 值innerText和textContent。

 

依赖性

除KO核心类库外,无依赖。

这个绑定的功能与text binding相对应,不同点为:

  • 控制DOM元素的innerHtml属性
  • 不会对内容进行Html编码,你可以定义自己的html标签注入进去

 

 

<script src ="js/knockout.js"></script>
<script src = "js/jquery-1.10.2"></script>

 

<div data-bind="html: details"></div>
<div data-bind="text: details"></div>

 


<script type="text/javascript">
var viewModel = {
details: ko.observable()
// Initially blank
};
viewModel.details("<em>For further details, view the report <a href=‘report.html‘>here</a>.</em>");
window.setInterval(function()
{
viewModel.details("<p style=‘color:red‘>" + "now Time is " + new Date().getTime() + "</p>") ;
},1000);
// HTML content appears
ko.applyBindings(viewModel);
</script>

执行结果

now Time is 1439809372167

<p style=‘color:red‘>now Time is 1439809372167</p>

 

html 绑定

标签:

原文地址:http://www.cnblogs.com/jinling/p/4737440.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!