Bre*_*tin 34 javascript unobtrusive-javascript knockout.js
我最近加快了Knockout的速度,我认为这是一个很棒的框架.但是我有一个问题.
我发现在非平凡的绑定案例中,我有javascript代码片段爬进我的视图(标记).事实上,Knockout文档中的不少代码示例也证明了这一点.
这是否会使Knockout本身具有突兀性?
我应该接受它是什么而不是在实践中担心?
或者我是否应该使用任何模式/技术来使Knockout不引人注目?
Mic*_*pas 21
好问题.我一直在编写复杂的KnockoutJS视图,直到我切换到Ryan Niemeyer的类绑定提供程序之前,我从未满意.
Knockout ClassBindingProvider允许您在JavaScript对象中声明绑定,然后从data-class类似于css类的工作方式的属性中引用它们.它很棒!
And*_*ers 16
尝试将Javascript保留在绑定之外,仅将其用于元数据
所以不要这样做
<span data-bind="visible: errors().length > 0">You have errors</span>
Run Code Online (Sandbox Code Playgroud)
使用计算的可观察量
<span data-bind="visible: hasErrors">You have errors</span>
Run Code Online (Sandbox Code Playgroud)
更新:我继续为KO创建了一个约会配置API, 可以在这里找到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/
我应该接受它是什么而不是在实践中担心?
我的理解是"不引人注目"意味着一些不同的东西.
"不引人注目"的一个方面是网站应该在JavaScript支持有限的浏览器上维护核心功能,或者根本不支持.为此,您对此原则的关注应取决于您的目标受众.我参与了一些项目,我对目标受众的了解非常充分,以至于我有幸说,"如果你想利用这个网络应用程序,可以使用像Chrome这样的现代浏览器,并启用JavaScript." 在这种情况下,随意使用最新,最棒的前端框架.
我曾经在其他项目中工作过,我们必须非常小心使用像Knockout这样的框架.如果您在很大程度上依赖于Knockout在您的应用程序中执行核心功能,那么您的应用程序本身就是突兀的.这是否应该打扰你取决于你的目标受众.
"不显眼的JS"的另一个原则是JavaScript和HTML之间的关注点分离.我实际上在辩论这个原则是多么重要.我认为更重要的原则是视图模型逻辑和显示逻辑之间的关注点分离,遵循MVVM模式.即使你在数据绑定中加入了一些JavaScript逻辑,Knockout也能很好地鼓励清晰地分离view/vm问题.只要它是严格的视图逻辑,我认为它实际上属于视图.
| 归档时间: |
|
| 查看次数: |
3255 次 |
| 最近记录: |