gpt4 book ai didi

javascript - Knockout js从元素内容初始化可观察值

转载 作者:行者123 更新时间:2023-11-28 08:14:42 27 4
gpt4 key购买 nike

我有这样的事情

<td data-bind="text: email_sended">
<%= invite.email_send %>
</td>

function AdminInvitesViewModel() {
var self = this;
self.email_send = ko.observable();
}

ko.applyBindings(new AdminInvitesViewModel());

如何从容器的内容中初始化可观察对象?

在这种情况下,发送的电子邮件是一个真/假值。

最佳答案

如果这是必要的,那么您可以使用自定义绑定(bind)轻松完成此操作。

这里是一个绑定(bind),它将使用元素的innerText设置现有的可观察量,或者如果不存在则创建一个可观察量。

ko.bindingHandlers.textWithInit = {
init: function(element, valueAccessor, allBindingsAccessor, data) {
var property = valueAccessor(),
content = element.innerText || element.textContent;

//create the observable, if it doesn't exist
if (!ko.isWriteableObservable(data[property])) {
data[property] = ko.observable();
}

data[property](content);

ko.applyBindingsToNode(element, { text: data[property] });
}
};

你会这样使用它:

<div data-bind="textWithInit: 'email_sended'"></div>

请注意,属性名称用引号引起来,因为绑定(bind)支持尚不存在的可观察对象

示例:http://jsfiddle.net/rniemeyer/kKBBj/

关于javascript - Knockout js从元素内容初始化可观察值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23757291/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com