gpt4 book ai didi

javascript - knockoutjs 在 with 中调用 click 方法

转载 作者:行者123 更新时间:2023-12-02 19:16:20 26 4
gpt4 key购买 nike

我在 with 模板中添加了一个 click 方法。

我不断收到错误消息 Uncaught ReferenceError :myMethod 未定义但 Person 显然有这个方法

Person = (data) ->
name = ko.observable(data.name)
lname = ko.observable(data.lname)
myMethod = (data) ->
console.log 'person.myMethod'
test= ->
console.log 'person.test'
name:name
lname:lname
myMethod:myMethod
test:test

这是模板

<div id="wrapper">
<h4>Person</h4>
<ul >
<li data-bind="with:person">
<span data-bind="text: name"> </span>
<span data-bind="text: lname"> </span>
<a href="#" data-bind="click: function() { myMethod($data) }" >CLICK </a>
</li>
</ul >
</div>

我不明白如何在匿名模板内调用 Person 对象上的 myMethod我尝试过类似的事情

$parent.person.myMethod
$root.person.myMethod
this.myMethod
person.myMethod

http://jsfiddle.net/eiu165/a7uTM/3/

非常感谢

编辑修复将方法名称添加到 myMethod

最佳答案

您的代码中有两个问题:

  1. 您没有 myMethod 但有 methodCall 方法,因此 myMethod:myMethod 应该是 myMethod:methodCall

  2. 尽管 Person 上有一个 myMethod,但您的 person = 中没有 Person 对象 ko.observable().

    因为使用表达式 person($.parseJSON(data)) 您只传递原始数据。所以你需要的是用 person(Person($.parseJSON(data))) 创建一个 Person

这是一个固定的 JSFiddle .

关于javascript - knockoutjs 在 with 中调用 click 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13092279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com