草庐IT

knockout

全部标签

javascript - Knockout js - 获取可观察的字符串长度

这似乎是一个简单的问题,但我似乎无法弄清楚我只需要显示可观察到的字符串的长度。我尝试使用ko.computed()函数实现结果,如下面的代码所示,但它始终返回零。FiddlewithanexampleHTMLThetitleis:Thelengthis:Lengthfromcomputed:JavaScriptfunctionVM(){varself=this;self.title=ko.observable();self.titleLength=ko.computed(function(){returnself.title.length;});}ko.applyBindings(VM

javascript - knockout 映射插件中的奇怪内存泄漏

在View模型是使用knockout.mapping插件创建的情况下,无法弄清楚为什么处理计算的可观察对象不会从全局变量中删除订阅。首先让我们看看直接创建模型时会发生什么://Globalvariable.varEnvironment={currencyStr:ko.observable("usd.")};//Itemmodel,usedintensively.functionItemModel(price){varself=this;this.price=ko.computed(function(){//Computedissubscribedtoglobalvariable.ret

javascript - 无法使用新数据对象更新 Knockout UI

当我从服务器获取单个项目的新数据时,我在UI刷新时遇到问题,该项目位于包装对象的observableArray中,该包装对象包含多个可观察对象的对象。考虑以下几点:varvm={....localEdited:ko.mapping.fromJS(newItemWrapper(defaultModelSerialised)),selected:ko.observable(null),editItem:function(data){//cloneatemporarycopyofdataforthedialogwhenopening(*.localEditedondialog)varclon

javascript - 使用 Knockout.js 发布集合

我正在编写一个asp.netMVC应用程序,并决定尝试使用Knockout.js来处理动态UI内容。这是一个很棒的框架,到目前为止它对我帮助很大。但我遇到了2个我无法解决的问题,并找到了任何有用的信息。我将从代码开始,向您展示我拥有的东西,然后我将尝试解释我想要实现的目标。C#View模型我的HTML/Razor和knockout模块varProject=function(project){ varself=this; self.Id=ko.observable(project?project.Id:0); self.CustumerCompany=ko.observable(proj

javascript - 你如何观察 Knockout 中的 JavaScript 哈希表?

在我的KnockoutView模型中,我有一些属性,我试图在其中使散列可观察。所以代替我的pre-Knockout代码self.MyHash={};我现在正在使用:self.MyHash=ko.observable({});在我的代码的其他部分,我使用如下语句操作哈希://addanentryself.MyHash()["test"]="MyValue";//removeanentrydeleteself.MyHash()["test"];该代码有效,因为条目已正确添加和删除。但是,哈希表的更改似乎没有被观察它的代码区域检测到。例如,当我更改哈希表时,这个计算的可观察对象永远不会运行:

javascript - 如何在 Knockout JS 中的 BindingHandler 中获取绑定(bind)表达式

假设我有一个跨度我有一个自定义绑定(bind)ko.bindingHandlers.MyBinding={init:function(element,valueAccessor,allBindings,viewModel,context){//Iwanttogetthestring"Name"here.NOTthevalueofName.},};如何在处理程序中获取包含绑定(bind)表达式值的字符串?即我如何获得“名称”而不是“名称的值”。我还需要表达式,所以传递字符串“Name”是不可行的。 最佳答案 实际上,Knockout确

javascript - 带有可观察参数的 Knockout 自定义验证

我有一种情况需要验证我的View模型中字段的最大数量。但是,最大数量必须是可变的,并且根据在此模型之外选择的UI项目进行计算。我试图将可观察对象作为参数包含在我的自定义验证器中,但它似乎不会在值更改时更新。我有一种感觉,一旦第一次执行验证代码,它就会保留参数。未使用Knockout的列表的HTML£25000£50000£75000这是我正在使用的代码的简化版本。varSpecifiedValuablesViewModel=function(maxSpecifiedItemAmount){varself=this;self.maxSpecifiedItemAmount=ko.obser

javascript - 尝试使用 Knockout ViewModel 实现 SignalR

我有以下代码,它似乎没有调用客户端并使用信息更新KnockOutJSView模型。GetOuting()在页面加载时被调用,并将正确的信息输入到View模型中。Chrome在开发者工具中没有显示JS错误。从那时起,我很难弄清楚如何解决它。任何帮助表示赞赏。SignalR中心publicclassOutings:Hub{privatestaticDictionaryoutings=newDictionary();publicvoidGetOuting(stringid){varguidID=newGuid(id);boolcontainsOuting=outings.ContainsKe

javascript - Knockout.js foreach 非常慢

我正在尝试使用模板创建一个简单的标记。像这样的东西:它工作得很好,但是如果我需要用这个模板渲染很多div,它会非常慢。创建每个div后的knockout将其添加到文档中。但是,如果我这样做:el=document.createElement("div");applyBindings(myModel,el);(div.list).innerHTML=el.innerHTML它工作得更快但不方便。也许Knockout有一些内置功能可以创建一组元素,然后将这组元素添加到文档中? 最佳答案 听起来KO正在使用您添加的每个DIV来操纵DOM。

javascript - 如何在 knockout 中从节点中删除绑定(bind)?

我发现理论上ko.cleanNode()应该在调用时从节点中删除绑定(bind),但在thisexample中好像不行。Javascript://Viewmodelvarvm={name:ko.observable("John")}//Nodetobeaddedvarnode=$("",{id:"testing",'data-bind':"text:name()"});//Firstadditiontobody$("body").append(node);//Applybindingsko.applyBindings(vm,$("#testing")[0]);//Removeko.cl