jjzjj

Knockout

全部标签

javascript - 当用户使用键盘时,Knockout.js valueUpdate 不起作用

我正在使用Knockout.js和ASP.NET。我的HTML如下:Fixed/Floating如果用户使用鼠标选择项目,JSON会返回服务器并更新信息。但是,如果用户使用“tab”切换到选择控件,选择一个项目,然后关闭,那么即使所选项目显示在UI上,JSON也会返回此控件的空白值。如果用户仅使用键盘,KnockoutView模型似乎不会更新,当用户使用鼠标时,浏览器中似乎会发生一些特定的更改事件。我该如何解决这个问题?有没有办法可以注册选择框onchange事件以使用手动更新Knockout模型的功能?我在IE9和Firefox中都试过了,我在这两个中都遇到了同样的问题。

javascript - 在 knockout.js 中执行所有 observableArray 依赖项后如何执行函数

我有一个observableArray。我想在从observableArray中删除或添加项目后以及在完成其所有依赖项订阅调用后执行函数。喜欢:observableArray.push(newObject);//Ican'tputmyfunctioncallatthispointbecauseifanysubscriptionis..//withnewObjectorobservableArraywillexecuteasynch,andi..//wantmyfunctiontoexecuteafterallsuchsubscriptionexecution.有没有办法在knockou

javascript - Knockout.js 在使用 'options' 绑定(bind)时更改 <option> 的颜色?

在选择列表上使用“选项”绑定(bind)时,是否可以更改选择列表选项元素的样式(使用“样式”或“css”绑定(bind))?或者这只能通过在选择列表上使用“foreach”并更改每个样式来完成吗?我在代码中有这个:但是如果我附加style:{color:isDefault()===true?'black':'red'}如果isDefault返回false,则整个列表为红色。以这种方式编码是实现此目标的唯一方法:或者是否存在我不知道的某种形式的Knockout.js魔法?谢谢! 最佳答案 为了扩展ThomasWiersema的回答,您

javascript - knockout 组列表为带有对象的更小列表

我有多名员工的每日数据,根据开始时间和结束时间,这可能意味着大量数据。因此,通过映射插件,我将它们映射到一个大列表中,但我需要将它们按员工分组到更小的列表中,这样我就可以为每个员工创建一个表(如更小的View模型),该表具有针对该子集的过滤和排序数据。这是我用静态数据创建的一个基本示例。$(function(){vardata={Employees:[{Id:1,Name:"Employee1",Day:newDate(),Price:12.54},{Id:2,Name:"Employee2",Day:newDate(),Price:112.54},{Id:1,Name:"Employ

javascript - knockout.js 因变量选择

[请在底部查看更新]我正在尝试进行依赖于knockout的选择,它旨在通过这些属性进行“产品”选择,例如产品可以具有“尺寸”和“Material”,如果我选择“尺寸”,则为knockout脚本向后端发出请求并检索哪些“Material”可用于所选尺寸,换句话说,如果选择了一个属性,则其他属性将被过滤掉以仅显示可用值(“所有尺寸”:1,2,3,4,5;"铝":1,4).属性列表是完全动态的,大约有80个属性可以以任意方式链接到产品。对于这种情况是否有任何“最佳实践”?我正在尝试用这样的代码来解决它,但还没有成功:varViewModel=function(data){varself=th

javascript - 是否有使用 Knockout 绑定(bind)页面进行更改跟踪的标准方法?

我有一个相当复杂的网页,其中包含各种选项卡、表单、单选按钮、下拉菜单等。所有这些都使用Knockout.js绑定(bind)到通过AJAX调用加载的非常复杂的JavaScript对象。当然,用户可以随心所欲地处理内容,这时他们可以点击保存按钮将所有更改保存回服务器。我正在想出一个好的设计来准确跟踪页面上的更改,以便我可以实现保存。因此,我提出了一些可能的实现方案。选项1)只需将所有内容发回并让服务器进行整理:使用此方法,我会让Knockout仅更新数据源。Save按钮将调用.toJS()并将该数据发送回服务器。优点:它非常简单,客户端只需做很少的工作。缺点:服务器并不知道发生了什么变化

javascript - 如何使用 Knockout 禁用点击事件?

我有两个按钮,叫做这里最好的是什么?我可以在$(document).ready上使用jQuery吗?问题是数据绑定(bind)单击会在按下时禁用其他单击事件,同样。但是当我按下同一个按钮时,它会再次启用第二个按钮。所以我想用所有胡言乱语说的是,我只想一次启用一个按钮。这有可能和knockout一起合作吗?如果是这样,请告诉我如何。PS:我在knockout网站上看​​过enable,没看懂。我应该如何让它充分发挥作用? 最佳答案 当我们有这样的代码时,knockoutjs启用功能将起作用最初两个链接都处于事件状态。如果您单击任何一个

javascript - knockout JS : Update/Insert data to a viewModel using mapping

我已经尝试解决这个问题很长一段时间了。我找不到任何解决此问题的方法,但如果我错了,请纠正我。问题:我有来自JSONAPI的数据,具有嵌套数组/对象结构。我使用映射最初用我的数据填充模型。要更新它,我想在新数据到达时扩展模型,或者更新现有数据。据我所知,映射选项键应该对我有用,但我可能误解了映射选项的功能。我已经归结了这个例子要表示的问题:varuserMapping={key:function(item){returnko.utils.unwrapObservable(item.id);}};//JSONcallreplacedwithvaluesvarviewModel={users

javascript - knockout : Change css class based on value of observable

我在可观察数组上使用foreach:如您所见,我将可用性的当前值传递给函数availabilityCssClass,该函数将该值与一些预定义的字符串进行比较。根据匹配的字符串,它返回一个类名。self.availabilityCssClass=ko.computed(function(value){varavailability=value;if(availability==="Busy"||"DoNotDisturb"||"BeRightBack")return"leftStatusCellColorOrange";elseif(availability==="Away"||"Off

javascript - 使用 Typescript 和 requirejs 时我应该把我的 Knockout.js 扩展放在哪里

我正在将一些javascript代码移植到typescript并使用requirejs。我有一个config.ts://fileconfig.ts//////require.config({baseUrl:'/scripts/App/',paths:{'jQuery':'/scripts/jquery-1.9.1','ko':'/scripts/knockout-2.2.1','signalR':"/scripts/jquery.signalR-1.0.1",},shim:{jQuery:{exports:'$'},signalR:{deps:["jQuery"]},ko:{deps: