backbone相关的知识

       Backbone.js为复杂WEB应用程序提供模型(models)、集合(collections)、视图(views)的结构。其中模型用于绑定键值数据和自定义事件;集合附有可枚举函数的丰富API; 视图可以声明事件处理函数,并通过RESRful JSON接口连接到应用程序。他的MVC模式和Java的MVC模式比较像,这一个比较好的学习框架。

这是通过URL获取数据,再展示到前台,在通过用户文本输入的内容,再和数据内的id匹配,进行查询显示到另一个页面,并将读取的数据升序降序。

<script type="text/javascript">
        var Gist = Backbone.Model.extend(), 
        Gists = Backbone.Collection.extend({
                    model : Gist,
                    url : '这写地址',
                    parse : function(response) {
                        return response;
                    }
                }),
        gists = new Gists();//将数据读取到html页面显示(A到B是将上面地址里的数据读取到html中显示)
      (标记A)  var GistRow = Backbone.View.extend({
                  tagName : 'table',
                 render : function(model) {
                 this.el.innerHTML = '<tr><td>' + model.get('id') + '</td><td>'
                       + model.get('firstName') + '</td><td>'
                       + model.get('lastName') + '</td><td>'
                       + model.get('email') + '</td><td>' + model.get('phone')
                        + '</td><td>' + model.get('adress') + '</td><td>'
                        + model.get('description') + '</td>'
                return this;
            }
        });

        var GistsView = Backbone.View.extend({
            el : 'tbody',
            collection : gists,
            initialize : function() {
                this.listenTo(this.collection, 'reset', this.render);
            },
            render : function() {
                var html = '';
                _.forEach(this.collection.models, function(model) {
                    var tr = new GistRow();
                    html += tr.render(model).el.outerHTML;
                });
                this.el.innerHTML = html;
                return this;
                }
            });
        var flag = true;
        var gistsView = new GistsView();
                gists.fetch({
                reset : true
   (标记B)         });
      

 (function($) {//这DMO标签属性的点击事件
            var SearchView = Backbone.View.extend({
                    el : "body",
                    events : {
                        'click #lookup2' : 'doSearch',
                        'click #sort': 'Sort',
                        'click #id1' :'lin',
            },
                doSearch : function() {
                    var obj =document.getElementById('lookup1').value;
                    if(gists.get(obj)){
                        var c=gists.get(obj).attributes;
                        document.getElementById("lin").value=("id:"+c.id+"\n"
                                                                +"firstName:"+c.firstName+"\n"
                                                                +"lastName:"+c.lastName+"\n"
                                                                +"email:"+c.email+"\n"
                                                                +"phone:"+c.phone+"\n"
                                                                +"adress:"+c.adress+"\n"
                                                                +"description:"+c.description+"\n"
                                                            );
                    }else{
                        alert("No results were found")
                    };
            },
                lin : function() {
                    alert("aa")
            },
                Sort : function() {
                         var oTabNode = document.getElementById("table");
                        var collTrNodes = oTabNode.rows;
                        var trArr = [];
                        for(var x=0; x<collTrNodes.length; x++){
                            trArr[x-1] = collTrNodes[x];
                        }
                        mySort(trArr)
                        if (flag) {
                            for (var x = 0; x < trArr.length; x++) {
                                trArr[x].parentNode.appendChild(trArr[x]);
                            }
                            flag = false;
                        }else{
                            for (var x = trArr.length-1; x >=0; x--) {
                                trArr[x].parentNode.appendChild(trArr[x]);
                            }
                            flag = true;
                        }
                        function mySort(arr){
                            
                            for(var x=0; x<arr.length-1; x++){
                                for(var y=x+1; y<arr.length; y++){
                                    if(parseInt(arr[x].cells[0].innerHTML)>parseInt(arr[y].cells[0].innerHTML)){
                                        var temp = arr[x];
                                        arr[x] = arr[y];
                                        arr[y] = temp;
                                  }
                              }      
                         }
                     }
                }
            });
            var searchView = new SearchView();
        })(jQuery);
    </script>

猜你喜欢

转载自blog.csdn.net/weixin_42655470/article/details/81099904