Tag: knockout.js

使用Knockout Js进行Ajax数据绑定

我正在使用淘汰赛js ,我发现diffcult绑定数据,而在ajax get方法,我已经创建了模型,viewModel和ajax函数,我有相同的js文件中的ajax方法,我创建了viewModel我正在调用页面上的ajax加载并尝试将我的html与konckout js绑定,我得到的错误userModel is undefined如果我在ajax调用之前给this.name = ko.observale(result[0].name) ,之后调用ajax它给name is undefined需要帮助 ////Model//// function userModel(result) { var self = this; this.name = ko.observable(result[0].name); /// give me error undefined before the ajax call and after ajax call i get the value in result this.userName = ko.observable(); } /////View Model//// var result var userDetailsViewModel = function(result) { self […]

数天直到今天moment.js

我有一个function,可以获得直到今天的天数。 但它工作正常,我使用moment.js来编写和格式化JSON数据的日期,我认为这会导致冲突。 有没有办法用moment.js做同样的事情? 这是有效的JavaScript: http : //jsfiddle.net/infatti/XeqPT/ // Count days due function daysUntil(year, month, day) { var now = new Date(), dateEnd = new Date(year, month – 1, day), // months are zero-based days = (dateEnd – now) / 1000/60/60/24; // convert milliseconds to days return Math.round(days); } 如何使用moment.js完成同样的事情? 如果有兴趣,这就是我如何在它不起作用的日期。 ko.bindingHandlers.textualDate = { update: function […]

依赖可观察量中的大型数组 – 级联

我正在使用Knockout JS,因为业务要求规定,由于带宽较低的用户,大多数(如果不是全部)逻辑都在浏览器中处理。 到目前为止,除了一个问题外,它的function还很棒。 我使用了许多包含级联逻辑的多选下拉列表。 我有8个列表处理分层数据并更改子列表中的可选选项。 这一切都很好,直到我到达底部的2个列表,这些列表可能包含3000个项目,具体取决于父列表选择(特别是当单击“全选”时)。 问题是,在IE中,我正在运行脚本警告消息,我需要摆脱它。 这是一些代码: viewModel.BottomLevelList= ko.dependentObservable(function () { if (this.ParentList().length === 0) { //nothing selected return []; } var result = []; var i = self.longMasterList.length; var currentId = 0; while (i–) { //psuodo code: //this.ParentList().Contains(loop-item) then //put in return list based on some further logic //else continue } return result; […]

Knockoutjs,jquery移动滑块

我想知道是否有人有一个带有knockoutjs的JQM滑块的工作示例。 我有两个问题: 1)将值绑定到observable – 我可以最初绑定它,即设置滑块的“值”,但这不会在拖动时更新底层的observable – 我认为这与JQM将元素放在输入上代表它? 2)更改min,max,value属性时刷新样式。 以下是我所拥有的子集,currentItems根据选择进行更改: workloadViewModel.filterValues = ko.dependentObservable(function () { var tmp = {}; var itms = this.currentItems(); if (itms.length == 0) return; tmp.max = itms[0].val; tmp.min = itms[itms.length – 1].val; tmp.minRange = this.minRange(); return tmp; }, workloadViewModel); ko.bindingHandlers.jqmRefreshSlider = { update: function (element, valueAccessor) { ko.utils.unwrapObservable(valueAccessor()); //just to create a […]

如何在声明的对象中添加具有相同键名的新属性?

如何在声明的对象中追加/添加具有相同键名的新属性? 这里的代码: // Declared object var myObject = { name : ‘John’, age : 15, }; // Array list of new property need to be add to myObject var others = [ { key : ‘hobby’, value: ‘reading’ }, { key : ‘hobby’, value: ‘writing’ } ]; 到目前为止我一直在尝试: ko.utils.arrayForEach(others, function(other) { myObject[other.key] = other.value; }); […]

与jQueryvalidation绑定的单选选项不起作用

我使用knockout将对象列表绑定到select 。 对象类可以包含任意数量的属性 这非常viewModel.selectedCity().Name ,我可以使用viewModel.selectedCity().Name或viewModel.selectedCity().Value加载子元素的viewModel.selectedCity().Value 。 我的问题是jQueryvalidation。 如果我保留上述语句,jQuery即使在选择后也不会重置错误。 我通过在bind中指定optionsValue来修复它,但是selectedCity返回标量值而不是整个对象。 任何想法如何保持对象行为或以不同方式进行validation? 未指定optionsValue时,错误仍然存​​在: 这是我在selectedCity上的对象观察: 当指定optionsValue时, optionsValue是selectedCity上的Object Watch:

将模板项绑定到KnockoutJS中数组的索引

我需要根据它们出现在Jquery插件列表中的位置在KnockoutJS模板中命名 ‘s : … … … 有没有办法使用KnockoutJS绑定到数组中的项的索引? 如果我不得不使用ROWINDEX将这些数据添加到数据库中的select,那将是一种耻辱。

KnockoutJS拦截到一个小数位

我知道有人提出了这方面的变化,但我的要求是,不需要格式化/舍入输入的值,我甚至不允许用户在小数点后输入多个数字。 我有一些适用于decimalFormatter绑定处理程序的东西,但它很笨重 – 也就是说,它允许你输入像’20这样的值。 并且由于我编写正则表达式的方式,您无法擦除所有值。 我意识到我可以修改它以接受整个条目的可选数字,但我真正想要的是,如果用户删除该值,它将恢复为0.0。 并且,允许他们进入’20’。 然后选项卡(onblur)并将其重新格式化为20.0,使其看起来更完整。 目前,如果用户输入’20’。 然后保存表单,它确实存储整数值20,当你重新打开/检索数据库中的值时,它显示20.0,所以它在重新加载时看起来很好。 我想过添加一个onblur事件,但是我们不想在覆盖被淘汰的数据绑定时做到这一点。 我们希望保持ko视图模型的所有约束,因此这不是一个选项。 我也看到一些建议计算的observable(例如这个SO post ),但我的绑定已经做到了。 第二个想法,敲门事件绑定是否可以去这里? HTML: JavaScript的: ko.bindingHandlers.decimalFormatter = { init: function (element, valueAccessor) { var initialValue; //$(element).on(‘keydown’, function (event) { $(element).keydown(function (event) { initialValue = $(element).val(); // Allow: backspace, delete, tab, escape, and enter if (event.keyCode == 46 || event.keyCode == 8 || […]

Jquery颜色选择器绑定处理程序创建多个div

我试图使用这个jquery 颜色选择器与knockout.js。 我编写了自定义绑定处理程序来将colorpicker输入控件与我的viewModel颜色值绑定。 这是绑定处理程序代码: ko.bindingHandlers.colorPicker = { init: function (element, valueAccessor, allBindingsAccessor) { //initialize datepicker with some optional options var options = allBindingsAccessor().colorPickerOptions || {}; $(element).colorPicker(options); //handle the field changing ko.utils.registerEventHandler(element, “change”, function () { var observable = valueAccessor(); observable($(element).colorPicker(“value”)); }); //handle disposal (if KO removes by the template binding) ko.utils.domNodeDisposal.addDisposeCallback(element, function () { $(element).colorPicker(“destroy”); […]

KnockOutJs:为什么click data-bind会执行元素的on-load?

我有一个通过PHP生成的锚链接,将绑定在ko并正常工作。 我的问题是为什么在元素加载时执行ko函数? 下面是生成的代码。 HTML: Add kofunction: self.addOrderedProducts = function (id,product_number,name,price,quantity,discount,balance){ self.orderedProducts.push(new Product(id,product_number,name,price,quantity,discount,balance)); }; 请帮帮我…在此先感谢:)