我在我的 ASP.NET MVC4 项目中使用 Knockout.js 并结合 SignalR 实现工业设施的实时可视化。我们有许多页面,其中跨度或文本框数据绑定到视图模型。每隔 2 到 10 秒,服务器会通过 SignalR 向客户端浏览器发送一个新值,并且视图模型中的值(以及 span、div 或文本框输入中的文本)会更新。这很好用。我想要实现的是页面上的某种视觉通知(例如,jQuery-highlight 显示该值的 DOM 元素)每当值发生变化时。
我猜 knockout.js 事件绑定接近我需要的,但据我所知,它只能将相关的视图模型项传递给 JS 函数,而不是我需要突出显示的 DOM 元素。我希望我能理解这个想法。
因此,我需要一种在文本框输入的值从“代码隐藏”而不是手动用户输入更改时触发函数的方法。这个函数应该被赋予相关的 DOM 元素以便进一步处理。
到目前为止我的代码:
<table class="StatusRowList">
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
</tr>
</thead>
<tbody data-bind="foreach: Items">
<tr>
<td><a data-bind="attr: { href: '/Archive/Show/?StationId=' + StationId() + '&DataPointId=' + DpId() }"><span data-bind="text: Text"></span></a></td>
<td>
<span data-bind="text: UnitPrefix"></span>
<input data-bind="value: Value" />
<span data-bind="text: UnitSuffix"></span>
</td>
</tr>
</tbody>
</table>
感兴趣的线是两个跨度之间的“输入”。感谢您的帮助!