Tag: knockout.js

在Bootstrap模式确认按钮上单击,创建并下载文件jquery或knockout js

我有一个bootstrap模式(bootbox),在其上确认操作,我想创建一个包含一些数字的文件,并将文件下载为文本文件。 我已经提到在内存中创建一个文件供用户下载,而不是通过服务器,但在我的情况下它没有帮助。 这是代码: bootbox.confirm(“Item not found! Do you want to download the text file?”, (yes) => { var items = response.itemNumbers; this.href = “data:text/plain;charset=UTF-8,” + encodeURIComponent(items); }); 我也试过这个: bootbox.confirm(“item not found! Do you want to download the text file?”, (yes) => { var itemNumbers = response.itemNumbers; var textFile = null; var data = new Blob([itemNumbers], […]

使用Durandal JS自动完成文本框

如何使用durandal JS创建自动完成文本框。 鉴于代码不起作用。 视图模型(JS) define([‘repositories/customerRepository’, ‘plugins/router’, ‘plugins/http’, ‘durandal/app’, ‘knockout’], function (customerRepository, router, http, app, ko) { return { router: router, activate: function () { var data = customerRepository.listMovies(); $(function () { $(“#movie”).autocomplete({ source: data, focus: function (event, ui) { $(“#movie”).val(ui.item.name); return false; }, select: function (event, ui) { $(“#movie”).val(ui.item.name); // $(“#friend-id”).val(ui.item.id); return false; } }) […]

使用KnockoutJS Observable数组的嵌套表(父表和子表)

我正在尝试使用KnockoutJS构建嵌套的可编辑网格视图,我不知道在哪里或如何处理它。 我已经通过从我的服务器获取JSON数据并使用Mapping Model映射所需的JSON信息来启动该过程。 我甚至拥有包含所有必需值的父网格。 现在,根据父网格的选择,它应该将2个值传递给Child,然后应该出现Child JSON方法。 而且因为它的淘汰显然应该是完全可观察的。 这是我到目前为止所做的代码: var ProductViewmodel; function bindProductModel(Products) { var self = this; self.items = ko.mapping.fromJS([]); ProductViewmodel = ko.mapping.fromJS(Products.d, self.items); console.log(ProductViewmodel); ko.applyBindings(ProductViewmodel); } function bindModel(data) { var self = this; self.Locations = ko.mapping.fromJS([]); viewModel = ko.mapping.fromJS(data.d, self.Locations); console.log(viewModel); ko.applyBindings(viewModel); } $(document).ready(function () { bindProductModel(data); $(‘#child’).click(function () { bindModel(data2); $(‘#childtable’).show(); }); }); […]

无法通过淘汰赛获得json对象

我不能得到json对象。 我的目标是: public class Person { public string firstName { get; set; } public string lastName { get; set; } } PersonsControll: public ActionResult Index() { return View(); } // GET: /Persons/GetPerson //[AcceptVerbs(HttpVerbs.Get)] //[OutputCache(Duration = 0, VaryByParam = “*”)] public JsonResult GetPerson() { Person p = new Person { firstName = “Jonas”, lastName = “Antanaitis” […]

无法使用jQuery触发Knockout数据绑定

我正在使用jQuery和knockout编写插件。 我有两个单选按钮。 我正在使用knockout data-bind检查并取消选中单选按钮。 问题是,当我尝试使用jQuery单击另一个按钮取消选中单选按钮时,它不会更新bind observable属性。 Fixed Price Allow Biding var onClick = function() { $(‘.hn’).prop(‘checked’, true); }; $(‘#button’).click(onClick); var ViewModel = function () { var self = this; self.selectedVal = ko.observable(“fixedPrice”); self.selectedVal.subscribe(function (val) { console.log(val) }); }; ko.applyBindings(new ViewModel()); 请在下面找到这个jsfiddle更多细节。

需要一个很好的方法来改变条件值。 (ASP.NET MVC)

今天我的任务是一直在思考一段时间的问题。 我在页面上有一个表单,当从下拉列表中选择一个项目时,会有一个数据库调用,它获取信息并根据检索到的数据设置一个Required Date字段。 这工作正常,但我将下拉设置为knockout的change事件活页夹,当重新访问页面进行更新时, 此事件在用户与页面交互之前运行两次 ,从而将Required Date设置为数据库调用最初获取的任何内容。 这里的问题是最终用户可以设置与估计日期不同的日期,我需要此调用不覆盖现有日期, 除非用户实际与下拉列表进行交互 。 我会尝试修剪这个来节省一些麻烦…… 下拉菜单: @Html.SearchPickerFor(m => m.ItemNumber, “ItemPicker”, new { @class = “form-control” }.AddMore(“data-bind”, “value: $data.ItemNumber, event: { change: ItemNumericDetails($data) }” )) 在更改时转到ItemNumericDetails函数: 基本上是重定向到另外两个函数。 var ItemNumericDetails = function (lineData) { GetItemInfo(lineData); GetPriceUpdateTolerance(lineData); } 这两个函数是非常相似的AJAX调用,我们关注的是GetItemInfo 。 lineData是我模型中的一行(一对多模型关系中的一个孩子),来自淘汰赛的$datafunction。 var GetItemInfo = function (lineData) { var orgId = lineData.ShipToOrgID(); var […]

将数据从knockout.js发布到CakePHP控制器

我正在将knockout.js页面中的数据发布到cakephp中的控制器,并且它表示数据已成功发布,但是,我的控制器似乎没有响应,我也没有收到警报……甚至没有空响应。 我甚至检查了chrome中的网络选项卡,它显示了正确的POSTED数据 这是从我的knockout viewmodel文件发布的数据 var JSON_order = JSON.stringify({“orderInfo”:[{“itemNumber”:”1″,”quantity”:”1″,”price”:1.00,”productName”:”test”}]}); $.post(“/orders/submit_order”, JSON_order, function(data){ alert(data.check); //alert doesn’t appear }, “json”); 这是我的控制器 function submit_order(){ $this->layout = false; $this->autoRender = false; if ($this->request->is(‘post’)) { $order = $this->request->data; $order = json_decode($order, true); $finalize_order = new submit; $finalize_order->display_submitted_order_success($order); } } 这是display_submitted_order_success的代码(我也在CakePHP之外的php文件上尝试了这个,但它也没有用) function display_submitted_order_success($order = null){ $this->layout = false; $this->autoRender = false; //I’m […]

从jQuery更新Change Knockout Multiselect值

我正在努力对使用Knockout的项目进行一些调整,我不能在我的生活中弄清楚如何从jQuery更新多选的值。 我确信在Knockout中有原生方式可以做到这一点,但这是一个微小的变化,我真的不想深入研究它。 选择框的html是这样的: 并在Knockout中定义如下: this.filteredProject = ko.observable(null); this.filteredProject.subscribe(function(projectId) { for (var i = 0; i < self.projects.length; i++) if (self.projects[i].id == projectId) { self.filteredProjectObject(self.projects[i]); self.selectedProjectCheckboxDisabled(false); return } self.onlyShowHoursForSelectedProject(false); self.selectedProjectCheckboxDisabled(true); self.filteredProjectObject(null) }); this.filteredProjectObject = ko.observable(null); 我目前的jQuery是: var projSelect = $(“#projectSelect”); projSelect.val(projId).change(); projSelect.multiselect(“refresh”).change() 并且jQuery按下按钮运行。 当jQuery运行时,multiselect使用新值更新,但绑定到它的代码永远不会运行,无论我做什么,我都不能强制Knockout更新。 在这里撕扯我的头发,所以任何帮助都将非常感激。

从KOObservable数组中删除重复项

想要从KoObservableArray中删除重复值。 我有以下JS文件。 我想将UI中的name列绑定为下拉列表以及删除重复的值。 建议做同样的最好方法。 JS档案 $(function () { var initialData = [ { name: “Well-Travelled Kitten”, sales: 352, price: 75.95 }, { name: “Speedy Coyote”, sales: 89, price: 190.00 }, { name: “Furious Lizard”, sales: 152, price: 25.00 }, { name: “Furious Lizard”, sales: 213, price: 25.00 }, { name: “Indifferent Monkey”, sales: 1, price: […]

RequireJS随机加载错误的文件名与AMD模块

我的配置(main.js)定义为: require.config({ urlArgs: “bust=” + (new Date()).getTime(), paths: { jquery: ‘jquery-1.8.3.min’, knockout: ‘knockout-2.2.0’, komapping: ‘knockout.mapping-latest’, token: ‘jquery.tokeninput’ }, shim: { ‘token’: [‘jquery’] } }); 编辑 main.js是一个共享配置。 我有几个页面都使用相同的设置,我不想在我的项目中的所有地方修改特定于版本的文件名。 /编辑 并包含在页面中: add-report.js包含在: require([‘Views/add-report’]); 编辑似乎可能是原因。 内联脚本有时在main之前运行,因此没有定义它期望找到的别名,所以它只是寻找.js。 /编辑 jquery.tokeninput是AFAIK,我正在使用的唯一非AMD模块。 工作请求会产生以下请求序列(Fiddler捕获): require.js main.js 查看/插件report.js 查看/添加 – 报告 – 向导model.js 淘汰赛2.2.0 jQuery的1.8.3.min.js 查看/添加报告精灵模型,parameter.js 查看/添加报告精灵模型,step.js knockout.mapping-latest.js 非工作请求具有如下序列: require.js 查看/插件report.js main.js 查看/添加 – […]