【问题标题】:Server side data bindings in javascript clientjavascript客户端中的服务器端数据绑定
【发布时间】:2012-07-18 12:37:10
【问题描述】:

在当今时代,通过 XHR 消费复杂 json 对象的最佳方式是什么?

在做数据绑定的时候,在javascript中,目前我用的是Sencha的Ext.Js/ Sencha touch model

例如:

    Store = Ext.create('Ext.data.Store',{
    Constructor: function (config) {
        var config = Ext.apply({}, config, {
            model: 'BasicModel',
            proxy: {
                type: 'ajax',
                url: 'myServerUrl.json',
                reader: {
                    type: 'json'
                }
            }
        });
    }   
});    

这让我可以很容易地使用服务器数据,并且还为商店周围的各种酷魔法提供了便利的方法(REST/排序等隐形)。

目前,我正在尝试使用更少的 ExtJs,在我做的一些项目中,因为在某些方面它有点重,因此我正在寻找与 Ext 的数据存储具有相似/更好功能的东西,不是 ExtJS(例如不是Ext-Core)

目前最好的 XHR 实用工具包是什么?

【问题讨论】:

    标签: javascript data-binding


    【解决方案1】:

    我会推荐 Knockout.JS 或 Backbone。

    来自 Knockout.js documentation:

    HTML

    <p>First name: <input data-bind="value: firstName" /></p>
    <p>Last name: <input data-bind="value: lastName" /></p>
    <h2>Hello, <span data-bind="text: fullName"> </span>!</h2>
    

    JS

    // Here's my data model
    var ViewModel = function(first, last) {
        this.firstName = ko.observable(first);
        this.lastName = ko.observable(last);
    
        this.fullName = ko.computed(function() {
            // Knockout tracks dependencies automatically. It knows that fullName depends on firstName and lastName, because these get called when evaluating fullName.
            return this.firstName() + " " + this.lastName();
        }, this);
    };
    
    ko.applyBindings(new ViewModel("Planet", "Earth")); // This makes Knockout get to work
    

    正如我所说,Backbone 也是您特定问题的解决方案。 Here 是一个由菜鸟为菜鸟设计的 Backbone 教程。 Here 是一个关于跨域处理的中级教程

    【讨论】:

      【解决方案2】:

      您还应该考虑 Angular.js http://angularjs.org/。这是我的一位同事 Greg Weber 的博客文章。

      http://tunein.yap.tv/javascript/2012/06/11/javascript-frameworks-and-data-binding/

      他有很多关于各种框架的例子。我不确定是在这里复制他的 blob 帖子更好,还是只提供一个链接。现在我将留下链接。

      【讨论】:

        猜你喜欢
        • 2012-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-14
        • 2016-05-21
        • 1970-01-01
        • 2015-02-15
        • 2010-09-14
        相关资源
        最近更新 更多