如何在knockout中使用$ data访问映射的对象?

时间:2014-08-02 04:42:26

标签: javascript jquery knockout.js

我使用如下所示的knockout属性映射将subject对象映射到li元素。

<ul class="nav nav-pills nav-stacked" id="subjects">
    <!-- ko foreach:Subjects -->
    <li data-bind='attr:{"data-event":$data}'>
        <a href="#" data-bind='text:subject_name + " by " + teacher_name;'>
        </a>
    </li>
    <!-- /ko -->
</ul>

之后我必须使用JQuery方法访问主题对象。

var originalEventObject = $(element).data('event');

注意:&#34;元素&#34;在这里是正确的。代码在循环中,并且不希望通过在此处填写完整代码来使问题复杂化。

但总是将字符串作为[Object Object]而不是真正的JSON。请帮帮我。

1 个答案:

答案 0 :(得分:0)

通常以这种方式访问​​数据并不是一种好习惯。如果是拖拽和drop it取决于你是否克隆元素。但是你可以在你使用克隆的情况下开始拖动。只需覆盖&#34;帮助&#34;功能可拖动。然后如果需要,使用jQuery放置这些数据:

  •   

    ko.dataFor

  •   

    ko.contextFor

jsfiddler

$(function() {
var model = {
    Subjects: [{text:'first'}, {text: 'second'}]
};
ko.applyBindings(model);
$('#result').text(JSON.stringify(ko.dataFor($('li')[0])));

});