Tag: mvvm

使用KnockoutJS按日期分组事件

更新 :我为我的问题提供了最佳答案。 随意提高可读性和/或效率。 问题 :在我的requireJS设置中使用fullcalendar.io,在每个next / prev / view更改的日历上填充Event对象(从对.ashx处理程序的AJAX调用接收)。 我想在回调上使用该JSON对象来创建由startDate属性分组的事件列表。 我做了什么 在日历更新(例如新月)中,我能够设置基本ViewModel以使用可观察数组填充新的事件列表。 唯一缺少的部分是group by,例如这个例子。 由于我希望按事件对象的开始日期进行分组,然后按开始日期对每个组进行排序,我不确定应采取的最佳实践,例如是否有必要将我的JSON数据转换为对象。 随着我的了解,我会继续更新这篇文章。 我没有使用链接示例的原因是因为我不理解处理程序背后的完整术语,但是在这一点上确实理解了一些像$ root这样的关键字。 AJAX调用和requireJS模块加载 :fullcalendar var fullCalendar = “.calendar-module”, viewModel; function initFullCalendar() { $(fullCalendar).fullCalendar({ events: { url: ‘/Presentation/DotGov/test/fullcalendar/GetEvents.ashx’, type: ‘POST’, success: function (data) { // bind events to KO ViewModel object viewModel.events(data); } }, }); } // requireJS module load […]

javascript代码执行和ajax异步

我已经阅读了关于函数表达式与声明,回调,提升的分配,我得到了大部分内容的一般概念,但我想我不能完全掌握这个概念,因为下面的代码,让我发布代码,然后问真正的问题。 var url = “beverages.txt”; var GridModel = function () { this.items = ko.observableArray(); var me = this; $.ajax({ datatype: ‘json’, url: “beverages.txt” }).done(function (data) { debugger; var jsonData = $.parseJSON(data); me.items(jsonData); }); }; var model = new GridModel(); // prepare the data var source = { datatype: “observablearray”, datafields: [ { name: ‘name’ }, […]

将params传递给Knockout中的子组件

我有一个模板: Add Item 还有一些具有一些逻辑的组件: function Item(title) { this.title = title } ko.components.register(‘item-list’, { viewModel: function(params) { this.items = ko.observableArray(params.items) this.newItem = ko.observable(”) this.addItem = function() { this.items.push(new Item(this.newItem())) } this.removeItem = function(a) { this.items.remove(a.$data) }.bind(this) }, template: {element: ‘item-list’} }) ko.components.register(‘item’, { viewModel: function(params) { $.extend(this, params) }, template: {element: ‘item’} }) function ViewModel() { […]

淘汰赛 – 取消变更赛事?

我有一个绑定到视图模型上的observable的复选框。 我要求基本上弹出一个“你确定吗?” 如果用户将其从true更改为false,则显示确认提示。 我有一个可怕的时间找出使变化“可取消”的最佳位置。 。 。 1)点击事件的jQuery处理程序2)Viewmodel内部订阅“beforeChange”3)Viewmodel内部订阅(正常) 在任何情况下,我都非常希望有机会直接取消更改,而不是对更改作出反应,如果需要,可能会将其恢复为之前的值。 Knockout的订阅活动是否让您有机会取消更改? 任何见解将不胜感激。 谢谢!

如何使用元素来获取数据绑定键和值observable?

我需要使用element获取数据绑定键和值observable。 var ViewModel = { selectOptions:ko.observableArray([…]), selectedValue:ko.observable() … some other stuff … } 在其他viewmodel中,我现在可以访问dom元素,我需要更新元素的绑定上下文observable。 如何获取数据绑定键和值? 我需要这样的东西 { options:selectOptions, value:selectedValue }