我尝试为分页器创建KnockoutJS component
但是出现问题,我将JSON
中的函数传递给我的组件参数,看起来像这样
<paginator params="viewModel: $parent.paginatorViewModel,
pagesPerGroup: 5,
event: { changePage : $root.perfilViewModel().filtro.filtrar}"></paginator>
$root.perfilViewModel()
是ko.observable()
perfilViewModel = ko.observable(new myViewModel());
$root.perfilViewModel().filtro
是另一个View Model
filtro = new filterViewModel();
function filterViewModel() {
this.filtrar = function(){
//my filter code here
}
}
在我的组件中,我可以通过以下代码获取属性:
if (params.event)
{
for (var k in params.event)
{
var event = params.event[k];
// another code here
}
}
params.event
为什么要回来找我:
function g(){if(0<arguments.length){if("function"===typeof C)C.apply(d,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the c…
如果我执行此功能(在chrome调试控制台中),它会为我返回我想要的对象。
经过多次测试,我发现,当我的perfilViewModel
为observable
时,会出现此问题,new myViewModel()
正常,我可以接收event
属性正常< / p>
为什么会出现这种情况?如果我需要将JSON
View Model
作为observable
的结果,如何将(function(){}())
中的函数传递给组件?