jQuery .data()不更新HTML5数据属性

bal*_*teo 4 jquery custom-data-attribute knockout.js

我试图使用jQuery向div 添加" data-bind "属性,如下所示:

var messageViewModel = {
    data: ko.observable({   
        message: response.message, 
        sendDateFmted: response.sendDateFmted, 
        messageId: response.messageId
    })
     };

$("<div>",{
    class:"messageToAndFromOtherMember"
}).data("bind", "template: { name: 'message-template', data: data }").appendTo("#messagesToAndFromOtherMember");

ko.applyBindings(messageViewModel);
Run Code Online (Sandbox Code Playgroud)

KnockoutJs需要" data-bind ".但是我得到的只是这个空div:

<div class="messageToAndFromOtherMember"></div>
Run Code Online (Sandbox Code Playgroud)

请注意,没有这样的属性data-bind,因此div仍为空...

Ale*_*der 8

jQuery .data()将值存储在内存中并使用data-*属性进行初始化.您可能希望通过在元素创建时设置它来坚持下去.

$("<div/>", {
  class: "messageToAndFromOtherMember",
  "data-bind": "template: { name: 'message-template', data: data }"
}).appendTo("#messageToAndFromOtherMember");
Run Code Online (Sandbox Code Playgroud)