Tag: knockout.js

如何绑定向上和向下箭头键以启用表格行导航?

我正在用表格显示搜索结果。 每个结果都有一个按钮供用户点击以显示它的完整细节。 这很好用。 我还想要的是使用键盘的向上和向下箭头来导航搜索结果。 现在,用户必须单击“ Select按钮或选项卡到按钮,然后按space bar 。 我想我可以捕获keyup和down事件,然后找到我需要选择的上一个或下一个,然后设置它,但听起来好像很多工作。 我想知道是否有更好的方法呢? JavaScript的 var myModel = new function() { var self = this; self.selectedResult = ko.observable(new MyObj()); self.searchResults = ko.observableArray(); self.navUpDown = function (item, evt) { if (evt.keyCode == 38) { // up var id = item.ID(); // find previous one and set selectedResult } if (evt.keyCode […]

Knockout.js – ko.mapping.fromJS – 可见绑定未更新

我正在开发一个网站,每隔5秒更新页面上的值,它调用远程数据库并通过Get Json调用返回MVC模型,并调用 viewModel = ko.mapping.fromJS(model) 。 然后我使用另一个Get调用每隔5秒更新一次该视图模型,然后调用此映射调用 viewModel = ko.mapping.fromJS(model, viewModel). 我的HTML元素上的绑定是正确的,因为从数据库中检索的原始模型显示在屏幕上,但是当模型上的IsVisible属性没有发生时,即表行应该设置为不可见,另一个应该设置可见。 在每次更新时,模型应该是不同的,行设置为可见或不可见以及其他跨度的文本更新,此部分正常工作,并且页面上显示更新,只是可见性不会更改。 HTML使用更新调用的Javascript来发挥可见的不可见问题。 模型中的所有变量都被正确调用我不能为公众发布模型。 var viewModel; var self; var getUpdates = setInterval(function () { $.getJSON( “/Home/Get”, {}, function (model) { viewModel = ko.mapping.fromJS(model, viewModel); }); }, 5000); $(document).ready( function () { $.getJSON( “/Home/Get”, {}, function (model) { viewModel = ko.mapping.fromJS(model); bindViewModel(); }); }); function […]

KnockoutJS fromJS无法正常工作TypeError:无法调用未定义的方法’fromJS’

我使用knockoutJS,当我使用“fromJS”时,我有以下错误 TypeError:无法调用未定义的方法’fromJS’ 我的JavaScript代码 $(document).ready(function () { var PersonModel = function (data) { ko.mapping.fromJS(data, {}, this); }; var data = $.getJSON(“http://localhost:40913/candidate/index/1”, function (data) { viewModel = new PersonModel(data); ko.applyBindings(viewModel); } ); }); JSON输出 { PersonalInfo: { PTitle: null, PGender: { Id: 1, Name: “Male”, IsDeleted: false, LastModified: “2013-01-21T00:00:00”, ModifiedBy: “System Auto Generated” }, PMilitaryService: { Id: […]

在更改时自动刷新列表视图 – knockoutjs和JQuery Mobile

我正在使用jout Mobile的knockoutjs(非常新的)。 我有一个listview,我将筛选结果绑定到。 我第一次打电话后加载数据后 $(‘ul’).listview(‘refresh’); 为了让JQM重新列出我的清单,这非常有用。 然而,当我过滤我的列表时,它被重新渲染并再次失去了样式,我无法弄清楚再次调用刷新的位置。 我的HTML如下: Filter: 我的Knockout JS是: var car = function (name, make, year) { this.name = name; this.make = make; this.year = year; } var carsViewModel = { cars: ko.observableArray([]), filter: ko.observable() }; //filter the items using the filter text carsViewModel.filteredItems = ko.dependentObservable(function () { var filter = this.filter(); if […]

使用knockout.js从表单中获取或发送数据

Knockout中的新手,也是前端设计师所以我需要简单的谈话。 我有一个表单,我需要发送到数据库,然后从数据库中检索。 请用非常简单的术语解释如何制作一个工作示例来说明保存和发布表单? 从淘汰教程: http : //knockoutjs.com/documentation/json-data.html我了解获取和发送json数据。 如何将json数据与表单匹配? 什么是映射,是否有插件或简单示例如何将json数据映射回我的表单? 基本上,我如何在下面的淘汰代码示例中做出评论? 获取数据: $.getJSON(“/some/url”, function(data) { // Now use this data to update your view models, // and Knockout will update your UI automatically }) 发送数据: var data = /* Your data in JSON format – see below */; $.post(“/some/url”, data, function(returnedData) { // This callback is […]

KnockoutJS:动态填充下拉列表

我是KnockoutJS的新手,我用dropdownlist做了简单的事情,填充和使用静态数据但是现在需要动态地执行两个事情dropdownlist 1.想要动态填充下拉列表(比如任何列表),我们可以从我的控制器获取此列表。 var InsertVal = function(name, id) { this.pname = name; this.pid = id; }; var Valuess = function() { $.ajax({ dataType: “json”, url: “getParentCategory.do”, success: function (data) { for(i=0;i<data.length;i++){ totalval.push(new InsertVal(data[i].parentCategoryName,data[i].parentCategoryId)); } handledata(totalval); } }); }; var handledata= function(totalval){ console.log("!!@#"+totalval); return totalval; } var obj={ parentCategory : ko.observableArray(Valuess()), chosenParentCategory : ko.observableArray() }; ko.applyBindings(obj); You […]

使用Jquery更改值时,KnockoutJS属性不会更新

我有一系列复选框,我想收集所选的一个。 复选框位于div中,当单击div时,也应检查复选框: var oCheckBox = $($(this).find(‘.chkSocialMediaItem’).get(0)); oCheckBox.attr(‘checked’, !$(oCheckBox).attr(‘checked’)); 这很好用但是KnockoutJS没有接收到更改,因此不会更新所选项目的计数器。 我读到了你需要触发更改事件的地方。 但是当我在复选框上听到更改事件时,它实际上会被触发。 任何帮助将不胜感激,谢谢! 更新: 我找到了一个“淘汰赛”解决方案。 在我的div中,我对’click’进行了数据绑定,并更改了该函数中的checked值: function SocialMediaSearchItem() { this.IsASelectedItem = ko.observable(); this.DivClicked = function () { this.IsASelectedItem(!this.IsASelectedItem()); }; } 这是唯一的解决方案吗? 我真的希望2看到一个Jquery解决方案。

在jquery中获取数据绑定值

我正在使用knockout js设置跨度值。 HTML代码 这工作正常并在UI上显示用户名。 我试图从js文件中获取该值。 使用下面的代码 alert($(this).attr(‘data-bind’)); 这是服务结果,如下所示:$ data.OnLineUserName 。 我想要我分配的用户名。 在UI中显示Bhagirathi但在js中显示数据绑定中存在的内容 如何在js文件中获取Name(表示:Bhagirathi) 请帮忙解决这个问题 提前致谢 [编辑] $(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 } }); [/编辑]

Knockout.Js没有检测到以编程方式更改的复选框状态

我有一个简单的复选框,其值通过一些基础设施进行调整,我正在写入localStorage中的持久状态。 我知道这通常可以通过设置viewModel来完成,但基础结构不知道任何敲除绑定并且无法访问它们。 我不认为这会是一个问题,因为我认为淘汰赛正在关闭’更改’事件,但是$checkbox.prop(‘checked’, true).trigger(‘checked’)无法触发我的观察。 即使直接使用点击事件也不能满足我的需求。 敲门线会发生什么事? 如何让它读取控件的状态? jsbin在这里展示了这种奇怪的行为 。 尝试直接选中复选框,然后单击按钮。

动态更新后自动在knockout绑定处理程序中应用masonry

我正在使用带有砌体的 knockoutjs并创建了一个自定义的敲除绑定处理程序,以将砌体应用于html元素。 我想要应用砌体的容器使用knockout的foreach绑定动态注入它的内容。 我遇到的问题是在砌筑容器动态更新后,自行应用砌体。 在代码段示例中,如果单击masonryize按钮,则会破坏砌体容器并重新应用mansonry,如何将此行为添加到我的绑定处理程序中? ko.bindingHandlers.masonry = { update: function(element, valueAccessor) { var options = valueAccessor(); $(element).masonry(options); } } var vm = { term: ko.observable(), page: ko.observable(1), per_page: ko.observable(3), items: ko.observableArray(), masonryize: function() { $(‘.grid’).masonry(‘destroy’); $(‘.grid’).masonry({ itemSelector: ‘.item’, columnWidth: 200 }); }, getStuff: function() { $.ajax({ url: ‘https://api.github.com/search/repositories’, method: ‘GET’, data: { q: this.term, page: […]