从JSON到Knockout组件的传递函数出错

时间:2015-10-28 12:38:48

标签: javascript json knockout.js

我尝试为分页器创建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调试控制台中),它会为我返回我想要的对象。

经过多次测试,我发现,当我的perfilViewModelobservable时,会出现此问题,new myViewModel()正常,我可以接收event属性正常< / p>

为什么会出现这种情况?如果我需要将JSON View Model作为observable的结果,如何将(function(){}()) 中的函数传递给组件?

0 个答案:

没有答案