问题标签 [knockout-2.0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9528 浏览

javascript - knockoutjs 点击绑定在嵌套的 foreach 中不起作用

所以我有一个非常奇怪的问题,即敲除js点击绑定没有附加到锚标签。其他 data-bind="" 有效,但点击绑定无效。

下面你可以看到 HTML 和 viewmodel js 文件的一部分

基本上它是一个模态弹出窗口,当用户单击页面上的链接时会加载它。我向服务器发送一个请求,它返回一个标签容器列表,每个标签容器都有起始字母和要在字母下方呈现的标签列表,如下所示: A a word 1 a word 2 B b word 1 b word 2 C c单词 1 c 单词 2

等等...

字母正确呈现 A、B、C 并且每个字母都在它们下方呈现正确的标签列表,并且 text:title 正确显示。

除了 addFilter(); 一切正常 我想绑定到 taglist 中的每个链接的函数。浏览器只是跳起来并在 url 中添加一个哈希字符。Firebug 也没有在绑定上显示任何错误。

div 容器具有 with:searchViewModel 的原因是因为整个页面都有一个主视图模型。但这无关紧要,因为它正在项目的所有其他页面上工作。

我唯一能想到的是点击绑定 $root.addFilter 是错误的,但我尝试了 addFilter ,其中萤火虫给出了错误“addFilter is not defined;”

我尝试了 $parent 和 $root。

有没有人有什么建议?

0 投票
2 回答
5979 浏览

charts - 支持 Knockout.js 的 Javascript 图表

我搜索了支持 KO.js 的客户端 javascript 图表,但找不到。

有没有人对支持 KO.js 的图表有任何经验?我追求 KO 的原因是,当用户切换图表参数时,图表应该自动为所选参数呈现。

0 投票
2 回答
1578 浏览

knockout.js - 从数据源获取时仅更新 observableArray 中更改的项目

我在做什么:每 30 秒轮询远程日期源以获取数据。然后我做self.MyCollection(newData);

我的问题:因为我可能已经过滤了数组或扩展了 UI 中的特定数组项,所以我不希望它每 30 秒重置一次。

我只想在项目实际更改时更新并重新渲染我的 observableArray。

任何人都知道如何避免在底层 observableArray 更改时重置 ui - 或者 - 如何避免在仅 1 个或更少的底层项目更改时整个 observableArray 发生变化?

0 投票
1 回答
1153 浏览

entity-framework - 如何使用实体框架 (EF) 4.1 Code First 将一个类的多个属性绑定到另一个类以与 Upshot.js 一起使用?

我有一个场景,我需要使用 Entity Framework 4.1 Code-First 将一个类的两个属性绑定到另一个类。(作为参考,Upshot.js 正在使用此模型以在使用 Knockout.js 2.1 的单页应用程序中使用)

通常,我会执行以下操作:

这允许 HomeAddress 和 OfficeAddress 都引用 Address 类的实例。

请注意,这不是我的真实数据模型。它仅用于说明目的。在现实生活中,我可能会使用 ICollection。不幸的是,对于这种特殊情况是不可行的,我确实需要维护从一个类到另一个类的多个引用。

In this particular scenario, it is also possible for a person to exist without any addresses defined. It is also possible for addresses to exist without a person. (As mentioned, this data model is just an example.)

While this compiles correctly, and I can even create and save data, upshot complains bitterly when it attempted to use this model.

It gives an (inner) exception like the following:

So... I attempted to set the Foreign Key information on the DbContext class like

No joy! This still gave me the same exception.

I am not sure how to set up the foreign key association so that multiple properties on one class can reference another class--at least not in a way that upshot will be pleased and stop complaining for a while.

What am I doing wrong, and how do I fix it?

0 投票
2 回答
182 浏览

javascript - knockout.js:将 { data: xyz } 传递给 foreach 而不仅仅是 xyz

我刚刚开始使用 knockout.js。我有一个foreach这样的绑定,效果很好:

people是我传递给的模型的一部分ko.applyBindings。根据文档,以下内容也应该起作用:

但事实并非如此。该列表仍然为空,但我在浏览器的错误窗口中看不到任何错误。任何暗示我可能做错了什么?两个电话之间是否有一些我看不到的细微差别?

我的想法是将处理程序传递给afterAddto foreach。因此我需要第二种方式来调用它。

0 投票
1 回答
1019 浏览

knockout.js - 关于使用 Knockout、Upshot 和 Entity Framework 4.3 的架构最佳实践的问题

问题

使用 Knockout 2.0.1、Upshot.js 和 Entity Framework 4.3 构建应用程序的最佳实践是什么?

技术栈

我们的技术堆栈目前看起来像:

• SQL Server 2008 R2 • ASP.NET MVC3(使用 C#)和 Entity Framework 4.3(使用 Code-First) • jQuery 1.7.2 • jQuery-UI 1.8.2 • Knockout 2.0.1 • Upshot.js beta

背景(许多其他开发人员可能会在这里用他们自己的项目代替我们的项目。)

我们正在开发一个新的 Web 应用程序,其中用户体验非常重要。该应用程序涉及许多密切相关的实体。出于各种原因,非常希望将这些实体中的许多或大部分驻留在相同的一般视觉上下文中(并且很可能在同一个“页面”上)。此外,一些页面元素需要与服务器频繁通信。

虽然我们最初打算将 ASP.NET MVC4 用于我们的表示层,但我们很快决定这可能不是最好的方法。在努力让 MVC 做我们想做的事情之后,我们基本上得出结论,我们最好的方法是将几乎所有 UI 逻辑移动到客户端,然后将 JSON 数据来回传递给服务器。单页应用程序似乎非常适合我们客户的需求。

我们一直在评估 Knockout,但由于映射由我们的 ASP.NET MVC 控制器(使用 JSON 操作方法)公开的实体(在 JavaScript 中)所需的工作量,我们并未完全“出售”它。如果有超过 100 个不同的实体,这种手动映射会非常痛苦!

在看到来自 TechDays 荷兰 (http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159) 的 Steve Sanderson 关于“单页应用程序”的精彩演示后,我们认为圣诞节来得太早了。Knockout + Upshot 似乎是完美的解决方案。我们没有花任何合理的时间思考问题,就立即通知客户我们将对我们的 UI 工具集进行一些调整。

当我们开始深入研究伴随任何实际应用程序的更微妙的架构问题时,我们意识到几乎没有例子,关于实现方法和最佳实践的想法甚至更少

我们整理了一些棘手的建筑问题,希望得到答案。我们非常感谢您提供的任何想法或解决方案。

在 upshot 和 .NET 之间进行通信的最佳机制是什么?

根据 Denver Developer 在其题为“深入了解 Upshot.js”的博文 (http://denverdeveloper.wordpress.com/2012/03/07/digging-into-upshot-js/) 中,共有三个数据提供者由Upshot.js。这些都是:

• “默认是DataProvider() 并使用/Submit 方法和您提供的操作来使用jQuery 的$.ajax 方法获取数据。• 下一个是 riaDataProvider() – 与第一个类似,但它使用 /json/SubmitChanges 方法和 /json/{your opertion} 来获取数据 • 最后我们还有 odataDataProvider() – 这个完全不同,因为它确实目前不支持更新数据——它是只读的。”</p>

哪个数据提供者更好——默认数据提供者还是 RIA 数据提供者?推荐哪一个?

应该如何配置控制器来管理传入和传出数据?

我们的理解是 WebAPI 控制器只能有一个“Get”方法。如果我们可能有几百个不同的查询(不包括过滤器变体)将针对服务器执行,这是否意味着我们将需要 200 个不同的控制器类?如果是这样,这是否支持使用结果的 riaDataProvider() 以外的数据提供程序?

如何访问和绑定可供 Upshot 使用的元数据?

Upshot 的一个假定好处是它能够查询通过数据注释公开的元数据。(至少这是我们目前的理解。)如何访问字符串长度、默认值、显示名称、描述信息以及是否需要字段的实体属性的元数据?

哪个客户端验证库应该与 Knockout 和 Upshot 一起使用?

假设,使用标准 jQuery 验证需要在所有表单输入字段上绑定“uniqueName”。似乎不鼓励使用 jQuery 验证。Knockout 插件页面 (https://github.com/SteveSanderson/knockout/wiki/Plugins) 列出了两个验证插件——“Knockout.Validation”和“Knock-Knock Validation”。对于一般用途,推荐使用什么工具或插件使用 Knockout 进行验证?

Upshot 如何处理在层次结构中创建和更新对象?

当结果将数据写回服务器时,它会自动处理同时添加父母和他们的孩子,就像在实体框架中已经可以完成的那样吗?我们假设答案是肯定的,但这不是我们尚未测试过的东西。

0 投票
1 回答
250 浏览

asp.net-mvc - 如何访问和绑定 Upshot 提供的实体元数据(通过客户端上的 JavaScript)?

Upshot 的一个假定好处是它能够查询通过数据注释公开的元数据。如何访问实体属性的元数据,例如字符串长度、默认值、显示名称、描述信息以及是否需要某个字段?

如何将这些数据连接到 jQuery Validation 或 Knockout Validation 等验证框架?

注意:我目前正在使用 Knockout 2.1.0、Upshot 1.0.0.2、Entity Framework 4.3 和 ASP.NET MVC4。

0 投票
2 回答
237 浏览

javascript - 当我调用“viewModel.errors().length”时会触发假错误消息

我有一个 ViewModel,我将它与ericmbarnard / Knockout-Validation一起使用。在其中我有这个领域:

在我的 html 中,这是:

我用 javascript 代码添加“输入文件”值。在这段 javascript 代码中,我计算 md5 文件,然后填写字段 txtCheckSum。但不幸的是,这不会自动填充我的 ViewModel。

所以,当我调用检查“viewModel.errors().length == 0”时,我有一个像空的错误。

帮助?

0 投票
2 回答
293 浏览

javascript - Knockoutjs 设置当前项目

在这段代码中:http://jsfiddle.net/PDwBF/1/
链接到谷歌不起作用。如何修复它?

0 投票
1 回答
1362 浏览

knockout.js - 如何使用引导程序风格的淘汰赛遍历树枝中的数据?

这必须是唯一的:p

我在 symfony2 中使用树枝。我用引导流体布局来设计它。看哪,我正在用淘汰赛循环数据,连续 4 个(span3)(每 5 个将换行)。但我不知道如何识别每 4 次迭代。

所以我要么需要<div class="row-fluid"></div>在每 4 次迭代之后放置,要么每 5 次删除一次。问题是 bootstrap 没有给出第一个 span3 边距,但其余的都得到 margin-left: 2.12766%。这意味着第 5 个 span3 (第二行的第一个)不符合要求。

因此,要么我必须将其拆分为流体行,要么删除第 5 个元素(或每 4 个元素之后)的填充,或者向第一个元素添加(尽管它会响应如此可变)边距。任何建议表示赞赏。