首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >低调的淘汰赛

低调的淘汰赛
EN

Stack Overflow用户
提问于 2012-11-19 09:59:58
回答 5查看 3.3K关注 0票数 34

最近,我开始学习Knockout,我认为这是一个非常棒的框架。不过,我有一个顾虑。

我发现,在非平凡的绑定情况下,我的视图(标记)中有一些javascript代码片段。事实上,Knockout文档中的许多代码示例也证明了这一点。

,这是否使淘汰赛本质上具有侵扰性?

我是否应该接受它,而不是在实践中担心它?

或者我应该使用什么模式/技术来使淘汰赛变得不引人注目?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-11-19 21:30:17

问得好。我编写复杂的KnockoutJS视图已经有一段时间了,直到切换到Ryan Niemeyer的类绑定提供程序,我才感到满意。

Knockout ClassBindingProvider允许您在JavaScript对象中声明绑定,然后通过类似于css类的data-class属性引用它们。效果很好!

看一个示例TodoMVC应用程序

票数 21
EN

Stack Overflow用户

发布于 2012-11-19 10:06:36

尝试将Javascript排除在绑定之外,只用于元数据。

所以不要做

代码语言:javascript
复制
<span data-bind="visible: errors().length > 0">You have errors</span>

使用可观测的计算值

代码语言:javascript
复制
<span data-bind="visible: hasErrors">You have errors</span>

更新:我继续为KO创建了一个configuration,它可以在这里找到https://github.com/AndersMalmgren/Knockout.BindingConventions/wiki

而不是做<button data-bind="click: save">Save</button>,而是做<button data-name="save">Save</button>。库将按照约定理解要将保存函数连接到单击处理程序按钮。按照惯例,如果存在canSave成员,它也将绑定enable。http://jsfiddle.net/3Ajnj/15/

票数 16
EN

Stack Overflow用户

发布于 2014-03-19 18:26:36

我是否应该接受它,而不是在实践中担心它?

我的理解是,“低调”指的是一些不同的东西。

“低调”的一个方面是网站应该在JavaScript支持有限或根本不支持的浏览器上维护核心功能。为此,您对这一原则的关注应取决于您的目标受众。我从事过一些项目,在这些项目中,我非常了解我的目标用户,因此我有幸说:“如果你想利用这个网络应用程序,请使用像Chrome这样的现代浏览器,并启用JavaScript。”在这种情况下,可以随意使用最新的、最令人敬畏的前端框架。

我从事过其他项目,但情况并非如此--我们必须非常小心地使用诸如Knockout这样的框架。如果您在很大程度上依赖于Knockout在应用程序中执行核心功能,那么您的应用程序本质上就是突出的。这是否应该困扰你取决于你的目标观众。

“不引人注目的JS”的另一个原则是将JavaScript和HTML之间的关注点分离开来。我实际上在辩论这个原则有多重要。我认为更重要的原则是按照MVVM模式将视图模型逻辑和显示逻辑之间的关注点分离开来。即使您在数据绑定中加入了一些JavaScript逻辑,但“敲除”在鼓励视图/vm关注点的清晰分离方面做得非常出色。只要它是严格的视图逻辑,我认为它实际上属于视图。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13451414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档