【问题标题】:Combination of MVVM and mobile UI frameworks for use with Breeze结合 MVVM 和移动 UI 框架与 Breeze 一起使用
【发布时间】:2012-11-21 15:10:06
【问题描述】:

我使用 Breeze/knockout 组合已经有一段时间了,总体上非常满意。 Twitter Bootstrap 在试验时是一个合适的 UI 占位符,但现在是时候专注于 UI(移动网络应用程序)了,我遇到了一个让我在其他地方寻找的问题(也就是说,除了淘汰赛)。我在淘汰赛中遇到的问题与无法/难以集成现有的 UI 组件/小部件有关。

问题在于,这些小部件/框架/库(如 jquery mobile)中的大多数都在操纵 DOM 以完成它们正在做的事情。这与 Knockout 冲突。

所以我转向了 Angular(我更喜欢它的绑定语法),并再次开始了我的探索。嗯...同样的问题。尽管有人编写了 Angular/Jquery Mobile 适配器,但我不愿意依赖它与新版本的 jquery mobile 保持同步。此外,我使用 jquery mobile 的次数越多,我就越不喜欢它。它似乎更适合移动网站而不是网络应用程序,我发现自己想要更换它的导航路由器等等。有趣的是,与此同时(就在几天前),我注意到最新版本的 Breeze 中的 Angular ToDo 演示。

Angular Breeze 演示让我想到我应该尝试带有 Kendo UI 的 Breeze,我并不特别关心它的 MVVM 实现,但它的 UI 非常精致。由于没有官方支持,我并没有花太多时间在这上面,也毫不奇怪,我遇到了问题。

所以,我的问题:

Breeze 会与 Kendo UI MVVM 一起使用吗?如果是,我们谈论的是几天、几周还是几个月?如果没有,关于如何解决实际问题的任何想法可以总结如下:

toolsToRapidlyDevelopProfessionalWebApp = [Breeze, MVVM, UI]

Breeze:我知道没有其他方法可以解决上述问题。

MVVM:哪种实现将与 Breeze 和可靠的 UI 库(在我的情况下为移动设备)一起使用?

UI:哪个专业质量的 UI 库可以与 MVVM 实现一起使用,也可以与 Breeze 一起使用?

顺便说一句,在我寻求答案的过程中,我遇到了以下问题:

http://feedback.kendoui.com/forums/127393-kendo-ui-feedback/suggestions/3247342-integrate-with-breeze-js

【问题讨论】:

    标签: knockout.js angularjs kendo-ui breeze knockout-mvvm


    【解决方案1】:

    是的,Breeze 的路线图上有 KendoUI 支持。正如您在链接中的Kendo's feedback page 上看到的那样,我们两家公司正在联系并对此有共同的兴趣。

    编辑: Telerik 在此处评论 Breeze 并显示与 KendoUI 的初始集成代码: https://gist.github.com/derickbailey/258716b0107f9067616a

    编辑 2: KendoUI 的 BreezeDataSource 的完整版本现在正在运行: http://www.kendoui.com/blogs/teamblog/posts/13-02-21/breeze_js_and_the_kendo_ui_datasource.aspx

    【讨论】:

    • 谢谢。实际上,我在提交问题之前就找到了该链接-这就是为什么要像这样将其添加到末尾的原因。得到确认是件好事,但出于计划目的,了解时机确实很有帮助。我很感激你不能做出承诺,所以如果你能详细说明所涉及的内容。例如,这是否需要对 kendo ui 代码库进行任何工作,还是适配器/微风端的所有更改?我也很好奇剑道是否有任何东西比 KO 和 Angular 更难支持。
    • 还不确定。我们必须从我们的甲板上清除一些东西,然后我们才能开始真正的工作。如果我随机猜测时间,我会说是明年初(一月,二月?)。
    【解决方案2】:

    我知道这不是在回答你关于微风/剑道/ui 的问题,但我想指出一些关于 Angular 以及可能还有 Knockout 的问题,这可能会帮助你找到答案。

    您可以使用 Angular 操作 DOM...我的意思是,这就是 Angular 所做的一切。但你只需要在正确的地方做:指令。您看到的那些连接器库只是实现了从 Angular 连接到 DOM 的指令。您不需要为它们依赖第三方,而且它们易于维护。

    别想太多,其实很简单。指令只是一个“链接”函数,基本上可以完成你的 DOM 工作。它真的很容易使用。

    angular.diretive("something", function(){
       return {
           restrict: 'EACM', //just tells angular where this can be used
           link: function(scope, element, attrs){ 
               //do DOM stuff here, element works with jQuery if included
               element.someJqueryPlugin();
           }
       }
    }
    

    现在,您可以在代码中的任何位置说 <something> 或 <div something>,然后调用并正确链接您的指令。你甚至可以使用模板、控制器和依赖注入。

    【讨论】:

    • 这听起来令人鼓舞。如果您……或任何人……更上一层楼,请告诉我们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 2013-07-09
    相关资源
    最近更新 更多