Sitelet https://github.com/knockoutcn/knockoutcn.github.io/issues/7
Skip to content

attr 绑定 #7

Description

@wikieswan

attr 绑定

作用

attr绑定提供一个通用的方法来给DOM绑定动态添加改变attr的属性值。

示例

<a data-bind="attr: { href: url, title: details ,target:target }">
    Report
</a>

var viewModel = {
        url: ko.observable("http://codepen.io/wikieswan/blog/the-css-binding"),
        details: ko.observable("Report including final year-end statistics"),
        target:ko.observable('_blank')
    };
    ko.applyBindings(viewModel);

a标签会根据js中的值绑定上对应的值。

参数说明

data-bind 接受一个js对象作为参数,这个对象的属性名是attr的值,属性名的值是attr的值。

注意1 绑定的attr属性名是js合法的变量名称

如果你需要绑定属性 data-something ,你不可以像下面这样写

<div data-bind="attr: { data-something: someValue }">...</div>

因为 data-something 不是合法的js变量。解决方案是用引号括起来,像下面这样:

<div data-bind="attr: { 'data-something': someValue }">...</div>

注意2 旧版本浏览器中的js保留字

在老版本的浏览器(ie8以下),使用js中的保留字作为DOM属性名,会导致程序出错。解决方式也是给属性名加上引号。像下面这样写:

<input data-bind="attr: { 'for': someValue }" />

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions