顾名思义,keypath 表示 key 的路径,如 user.profile.name

渲染模板需要数据,而数据通常带有层级结构,比如用户列表:

{
    data: {
        users: [
            {
                name: 'Jack',
                age: 1
            },
            {
                name: 'John',
                age: 2
            },
            {
                name: 'Mike',
                age: 3
            }
        ]
    },
    methods: {
        select: function (keypath) {
            console.log(keypath, this.get(keypath));
        }
    }
}

渲染用户列表时,我们给每个用户添加一个按钮,并且希望点击按钮能知道是点了哪个用户:

{{#each users}}
    <div>
        {{name}}
    </div>
    <button on-click="select($keypath)">
        Select
    </button>
{{/each}}

当我们点击第二个用户时,会打印出如下数据:

users.1 Object {name: "John"}

keypath 真正做到了视图映射数据。

模板中每个节点都有对应的 keypath,因此类似点击监控的需求做起来非常方便。

results matching ""

    No results matching ""