我正在使用 knockout js 设置跨度值。
HTML 代码
<span id="spnQStreamChat" data-bind="text: $data.OnLineUserName"></span>
这工作正常并在用户界面上显示用户名。
我正在尝试从 js 文件中获取该值。
使用下面的代码
alert($(this).attr('data-bind'));
这是这样的服务结果文本:$data.OnLineUserName。我想要我分配的用户名。
在 UI 中显示 Bhagirathi,但在 js 中显示数据绑定中存在的内容
如何获取js文件中的名称(意思是:Bhagirathi)
请帮助解决这个问题
提前致谢
[EDIT]
$(document).on("click", ".btn-mini", function (e) {
alert(ko.contextFor($('.btn-mini')[0]).$data.OnLineUserName);
try {
var connectionId = chatHub.server.getUserConnectionId($(this).attr('data-bind').username, sessionUserName);
}
catch (e) {
//error
}
});
[/EDIT]
您可以使用以下命令获取元素的淘汰上下文
ko.contextFor($('#spnQStreamChat').get(0))
这将返回一个像这样的对象
ko.bindingContext {$parents: Array[1], $root: ViewModel, ko: Object, $data: SomeObject, $parentContext: ko.bindingContext…}
其中 $data 是您的 $data 对象。所以要得到你需要的名字
ko.contextFor($('.button.btn.c_btn').get(0)).$data.OnLineUserName()
当您需要获取 $data 对象时,这种方式更有用。否则你可以用 jQuery 获取跨度的“文本”
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)