Knockout.js 当用户单击查看详细信息时,使用knockoutjs加载子项
我有一张人的名单,每个人都有一张宠物的名单。 我想获取页面加载中的人员列表。 如果用户单击“查看宠物”,我只想加载一个人的宠物列表 下面是jsfiddle使用coffeescript的示例 getPets似乎在加载时被反复调用Knockout.js 当用户单击查看详细信息时,使用knockoutjs加载子项,knockout.js,Knockout.js,我有一张人的名单,每个人都有一张宠物的名单。 我想获取页面加载中的人员列表。 如果用户单击“查看宠物”,我只想加载一个人的宠物列表 下面是jsfiddle使用coffeescript的示例 getPets似乎在加载时被反复调用 <a href="#" data-bind="click: $root.getPets()">view pets</a> 编辑 我已经通过直接向Person对象添加方法解决了这个问题。 当您使用单击绑定(或事件绑定)时,您希望根据对函数的
<a href="#" data-bind="click: $root.getPets()">view pets</a>
编辑
我已经通过直接向Person对象添加方法解决了这个问题。当您使用
单击
绑定(或事件
绑定)时,您希望根据对函数的引用而不是实际调用来绑定它
所以,你只想做:
<a href="#" data-bind="click: $root.getPets">view pets</a>
否则,代码实际上会被执行。除非函数返回您想要使用的实际函数,否则您可能不希望执行此操作。当您使用
单击
绑定(或事件
绑定)时,您希望将其绑定到对函数的引用,而不是函数的实际调用
所以,你只想做:
<a href="#" data-bind="click: $root.getPets">view pets</a>
否则,代码实际上会被执行。除非函数返回您想要使用的实际函数,否则您可能不希望执行此操作。我不知道可以向Person类添加方法 为了得到我自己的宠物列表,我亲自添加了getPets方法
Person = (data) ->
name = ko.observable(data.name)
lname = ko.observable(data.lname)
pets = ko.observableArray(data.pets)
getPets = (person) ->
data = '{"pets":[
{"age": "5", "type": "dog"},
{"age": "4", "type": "cat"}
]}'
json = $.parseJSON(data).pets
mappedItems = $.map(json , (i)-> Pet(i) )
pets(mappedItems)
name:name
lname:lname
pets:pets
getPets:getPets
我不知道我可以向Person类添加方法 为了得到我自己的宠物列表,我亲自添加了getPets方法
Person = (data) ->
name = ko.observable(data.name)
lname = ko.observable(data.lname)
pets = ko.observableArray(data.pets)
getPets = (person) ->
data = '{"pets":[
{"age": "5", "type": "dog"},
{"age": "4", "type": "cat"}
]}'
json = $.parseJSON(data).pets
mappedItems = $.map(json , (i)-> Pet(i) )
pets(mappedItems)
name:name
lname:lname
pets:pets
getPets:getPets