在knockout.js中单击时从数组传递对象

在knockout.js中单击时从数组传递对象,knockout.js,Knockout.js,我对knockout.js还不熟悉,我肯定这里遗漏了一些简单的东西。我在一个列表中有一个对象列表,我只想选择其中一个对象并从中获取一个属性以加载更多数据 JS: 这是我的HTML: <ul data-bind="foreach: categories"> <li> <a data-bind="click: $parent.gotoCategory"><label data-bind="text:

我对knockout.js还不熟悉,我肯定这里遗漏了一些简单的东西。我在一个列表中有一个对象列表,我只想选择其中一个对象并从中获取一个属性以加载更多数据

JS:

这是我的HTML:

 <ul data-bind="foreach: categories">
            <li>
                <a  data-bind="click: $parent.gotoCategory"><label data-bind="text: $data.categoryName"></label></a>
            </li>
        </ul>
项目列表非常完美,但是当我单击并添加项目时,我希望得到我的categoryID,但是我得到了一堆javascript,看起来像是一个尝试求值和参数的函数

我错过了什么

编辑-以下是我在警报中得到的信息:

function c(){if(0<arguments.length){if(!c.equalityComparer||!c.equalityComparer(d,arguments[0]))c.I(),d=arguments[0],c.H();return this}a.U.La(c);return d}function c(){if(0<arguments.length){if(!c.equalityComparer||!c.equalityComparer(d,arguments[0]))c.I(),d=arguments[0],c.H();return this}a.U.La(c);return d}

function c(){如果(0您的
categoryID
似乎是一个可观察对象。要访问可观察对象的值,您需要将其作为一个不带参数的函数调用

因此,您的
gotoCategory
应该更像:

            self.gotoCategory= function (category) {
                self.chosenCategoryID(category.categoryID());
                alert(category.categoryID());
            };
            self.gotoCategory= function (category) {
                self.chosenCategoryID(category.categoryID());
                alert(category.categoryID());
            };