Tag: knockout.js

如何在使用无容器控制stream的同时数据绑定div的“class”或“id”属性?

我正在Knockout 2.0.0发布伟大的新的无容器控制stream(新function编号2)或http://jsfiddle.net/StevenSanderson/8vms5/light <ul> <li><strong>Here is a static header item</strong></li> <!– ko foreach: products –> <li> <em data-bind="text: name"></em> <!– ko if: manufacturer –> &mdash; made by <span data-bind="text: manufacturer.company"></span> <!– /ko –> </li> <!– /ko –> </ul> 如果我想要类似于<li class =“$ {name}” > </ li>的话 这在使用模板时是微不足道的,但是我现在无法使其工作。 我试过<li data-bind ='class:name' > </ li>,但徒劳无功。 我是新来的,请放轻松点。

Knockoutjs计算传递参数

我想知道是否有可能与knockoutjs绑定时传递参数。 我绑定了一个checkbox的列表,并希望绑定到我的viewmodel中的一个计算的observable。 在我的viewmodel(根据传递给read函数的参数),我想根据一定的条件返回true / false。 var myViewModel=function(){ this.myprop=ko.computed({read: function(){ //would like to receive an argument here to do my logic and return based on argument. } }); }; <input type="checkbox" data-bind="checked: myprop(someval1)" /> <input type="checkbox" data-bind="checked: myprop(someval2)" /> <input type="checkbox" data-bind="checked: myprop(someval3)" /> 有什么build议么?

有条件地在knockout.js中添加一个元素属性

knockout.js库有一个"attr"数据绑定 ,允许你dynamic地改变一个HTML元素属性的值(例如“title”)。 但是,在某些情况下,取决于绑定对象上相应的可观察属性,该属性可能需要也可能不需要。 例如,如果我的模型有一个“标题”可观察性,如果存在(非空),可能需要设置“标题”属性,如果不存在(空),则可以完全跳过该属性。 敲除提供任何方式来有条件地设置属性? (理想情况下,没有条件地呈现整个元素的开始标记…) [注]这个类似命名的问题实际上是由knockout的CSS类的特殊处理来解决的,并不涉及这个问题(或者它自己的标题): 如何有条件地渲染一个带有knockoutjs的css类

调用function,进入按键

当input键被按下时,如何使用knockout.js调用一个函数..下面是我的代码。 ko.bindingHandlers.enterkey = { init: function (element, valueAccessor, allBindingsAccessor, viewModel) { var inputSelector = 'input,textarea,select'; $(document).on('keypress', inputSelector, function (e) { var allBindings = allBindingsAccessor(); $(element).on('keypress', 'input, textarea, select', function (e) { var keyCode = e.which || e.keyCode; if (keyCode !== 13) { alert('a'); return true; } var target = e.target; target.blur(); allBindings.enterkey.call(viewModel, viewModel, target, element); […]

性能调整淘汰赛应用程序 – 改进响应时间的指导方针

我有一个庞大而复杂的页面,严重依赖于knockout.js。 性能开始成为一个问题,但考察调用堆栈并试图find瓶颈是一个真正的挑战。 我注意到另一个问题( Knockout.js – 理解foreach和 ),接受的答案有评论: …我build议不要使用高性能是必要的,因为开销… 假设声明是真实的,这是真正有用的东西知道,我还没有find这样的性能提示的来源。 所以我的问题是: 在进行经典的性能调优之前,是否可以使用一般准则/重要提示来帮助我的应用程序的性能?

使用knockoutjs attr写入数据*属性

我遇到了knockout.js中data *属性的问题。 用attr写出来。 我可以做到这一点没有问题: <input data-bind='text: Title, attr: {name: "Events[" + viewModel.events.indexOf($data) + "].Title"}'/> 但如果我想使用data-id ,常规的方式不起作用,所以我把一个单引号围绕属性: <input data-bind='text: Title, attr: {'data-id': "Events[" + viewModel.events.indexOf($data) + "].Title"}'/> 这给了我 Error: Unable to parse bindings. Message: SyntaxError: missing } in compound statement; Bindings value: attr: { http://127.0.0.1:21254/Scripts/knockout/knockout-2.2.0.js 有人可以看到这里出了什么问题吗? 干杯!

replaceKnockout.js中的所有元素observableArray

我在我的视图模型中有一个observableArray 。 在创buildVM后,我希望完全replaceobservableArray的数据。 以下是我如何做到这一点: //Initial Setup var vm = {}; vm.roles = ko.observableArray([]); ko.applyBindings(vm); //….replace array later on…. vm.roles(["1", "2"]); 这似乎工作正常,但我担心,如果这是不正确的,可能会导致内存泄漏。 任何人都可以符合,如果这是更新现有的observableArray首选的方式假设你想要更换所有的数据? 我注意到observableArray有一个removeAll()方法,并想知道是否需要调用干净地做这个,或者如果我很好,我在做什么?

在knockout.js完成渲染所有元素后成功callback

我已经实现了一个淘汰赛foreach绑定,在同一页面的多个模板,其中一个例子在这里给出,我感兴趣的是在找出一个块完成渲染时,我试过afterRender和afterAdd ,但我想它运行为每个元素,而不是整个循环完成后。 <ul data-bind="foreach: {data: Contacts, afterAdd: myPostProcessingLogic}"> <li> <div class="list_container gray_bg mrgT3px"> <div class="list_contact_icon"></div> <div class="contact_name"><span data-bind="text: first_name"></span> <span data-bind="text: last_name"></span></div> <div class="contact_number"><span data-bind="text: value"></span></div> <div class="callsms_container"> <a href="#notification-box" class="notifcation-window"> <div class="hover_btn tooltip_call"> <div class="hover_call_icon"></div> <span>Call</span></div> </a> <a class="sendsms" href="#sendsms" rel="#sendsms"> <div class="hover_btn tooltip_sms"> <div class="hover_sms_icon"></div> <span>SMS</span></div> </a> <a href="#"> <div class="hover_more_btn"></div> </a> </div> […]

使用onclick或与KnockoutJS的点击绑定传递参数

我有这个function: function make(place) { place.innerHTML = "somthing" } 我曾经用普通的JavaScript和html做到这一点: <button onclick="make(this.parent)">click me</button> 我该如何使用惯用的knockout.js来做到这一点?

knockout.js并听取checkbox上的检查事件

我试图得到一个函数来执行时,checkbox被选中或取消选中,以validation所有checkbox未选中,但它永远不会被执行。 我假设我没有做正确的。 @Html.CheckBox("Subscription", new{ data_bind="disable: Disabled, checked: Checked, click: $parent.allSubscriptionsUnchecked"} )