gpt4 book ai didi

javascript - 访问 Knockout 中的子元素

转载 作者:行者123 更新时间:2023-11-28 03:52:57 25 4
gpt4 key购买 nike

我正在尝试访问这个 html 元素,该元素具有由 attr:{id:} 动态设置的 id

<script type="text/html" id="comment">
<td class="dock-panel-parent">
<a data-bind="attr:{id: 'commentIcon' + $context.cellContext.status.rowIndex}, click: $parent.toggleCommentSelection" class="fa fa-plus" style="float: right"> </a>
</td>
</script>

我试图从另一个函数触发此点击事件,但我什至无法从我的toggleCommentSelection 事件之外的任何地方访问此元素的ID

    self.handleOkResponse = function () {
var currentId = self.currentEvent().currentTarget.id;
var currentIndex;


currentIndex = currentId.replace(/\D/g,'');
currentId = 'commentIcon' + currentIndex;

$('#' + currentId).trigger("click");
};

我检查了 id 是否正确,但由于它是嵌套的,所以我似乎无法访问它。有没有办法可以从另一个未绑定(bind)到该元素的父函数更改 this 的属性?

最佳答案

在父 View 模型中,存储 this 指针。

var self = this;

然后在子对象的构造中将 self 作为参数传递

   self.addFormMenu = function(item) {
var i;
self.formMenu([]);
for (i = 0; i < item.length; i++) {
self.formMenu.push(new VisFormMenuVm(item[i], self));
}
self.activeFormPage(1);
};

将该 self 指针存储在子级中。

 var VisFormMenuVm = function(data, myparent) {
'use strict';
var self = this;
self.parent = myparent;

然后您应该能够对子级的父级执行操作。

self.parent.searchInput("");

要从 View 模型设置中的任何位置访问对象,您可以对其进行绝对路径。如果你的绑定(bind)是这样的。

viewModel = {

visualization : new VisualizationVm([], "summary"),
};
ko.applyBindings(viewModel);

您可以从 JavaScript 中的任何位置调用此函数,并将所有子对象导航到您要修改的对象。

viewModel.visualization.topicbuilder().aceEditor.getSession().setMode({
path : "ace/mode/xml",
v : Date.now()
});

关于javascript - 访问 Knockout 中的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47817526/

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