ejq是一款非常小巧的JS工具库,未压缩才50K,在jquery的基础上对jquery缺失部分作了很好的弥补作用。

优点:

1、具有内置的模板解析引擎语法和angularjs相近减少学习成本

2、能够方便的对JSON操作,增删查改

3、随机数功能比较健全

4、丰富的通用函数,这些函数是通过N多项目需求并且积累下来的,实用性很强。

 

功能介绍

一、随机数

       var num= $.random.getNum(10);//获取0-10之间的随机数字
       var num2 = $.random.getNumBetween(100,200);//获取100-200之间的随机数字
       var num3 = $.random.getNumBetweenLength(4, 5);//获取长度为4-5的随机数字
       var num4 = $.random.getNumByLength(10); //获取长度为10的随机数
        
       var w1 = $.random.getWord(10);//获取10位长度的随机(字母加数字)
       var w2 = $.random.getNumBetweenLength(2, 4);//获取2位长度到4位长度之间的随机(字母加数字)

       var guid = $.random.getGuid();//获取guid

 

二、对JSON的操作

        var json = [{ id: 1, name: "张三" }, { id: 2, name: "李四" }, { id: 3, name: "王五" }];

        //对json进行筛选获取1和2的json集合
        var json1And2 = $.linq.where(json, function (v) { return v.id == 1 || v.id == 2; });

        //获取id为1的对象
        var zs = $.linq.single(json, function (v) { return v.id == 1; });

        //获取id>1的第一个对象
        var list = $.linq.first(json, function (v) { return v.id > 1; });

        //排序
        var json2 = $.linq.order(json, "id", "desc");
        
        //移除id为1的对象
        $.linq.remove(json, function (v) { v.id == 1; });
     
        //是否存在ID为1的对象,因为让删了当然反回false
        var isAnyOne = $.linq.any(json, function (v) { v.id == 1 });

 

三、数据的双向绑定

第一眼看去像是angularjs,其实是ejq.js模仿angularjs自已实现的模版解析引擎,因为这个功能才写了2天,有很多功能还没来的急实现,会最在近一个月让它更加的健全。

现在已经实现了 异步和同步的数据绑定功能 ,暂不支持运算符和逻辑条件,只作数据绑定还是够用了。

  $(function () {


            //申明模版引擎的作用域
            var model = $ejqApp.module("ng-app");
            //控制器操作
            model.controller("ctr1", function ($scope, $http, $con, $app, $tool, $event) {

                $scope.model = {
                    title: "哈哈",
                    list: [{ id: 1, name: "table1" }, { id: 2, name: "table2" }, { id: 3, name: "table3" }],
                    item: [{ id: 3, name: "table3" }, { id: 2, name: "table2" }, { id: 1, name: "table1" }],
                    id: 1
                };
                $scope.haha = { text: "haha " };


                //使用ajax
                $http.jsonList = {
                    url:"../json.json",//随机URL
                    type: "get",
                };
               
                //获取当前控制器
                var thObj = $con.getObj();
                //获取当前App
                var appObj = $app.getObj();


                //给当前控制器name注册事件实现双向绑定
                appObj.on("click", thObj.find("#name"), function () {
                    

                    //更新model.Title
                    $scope.model.title ="哈哈"+ $.random.getNumBetweenLength(8, 10);


                    //更换AJAX URL
                    if ($http.jsonList.url == "../json.json") {
                        $http.jsonList.url = "../jsonList.json";
                    } else {
                        $http.jsonList.url = "../json.json";
                    }

                    //重新绑定
                    $ejqApp.apps.bind()

                    alert("数据重新绑定成功")
                })


            })
            $ejqApp.apps.bind();
        })
<body ng-app="ng-app">
    <h1>
        模仿angular.js双向绑定的DEMO
    </h1>
    <div ng-controller="ctr1">
        <input id="name" type="button" value="Reset" />
        <div>
            <h1>$scope.model</h1>
            {{model.title}}
            {{model.id}}
            <table ng-repeat="item in  model.list">
                <tr><td>{{item.id}}</td><td>{{item.name}}</td></tr>

            </table>
            <table ng-repeat="item in  model.item">
                <tr><td>{{item.id}}</td><td>{{item.name}}</td></tr>

            </table>
        </div>
        <h1>$scope.haha</h1>
        {{haha.text}}

        <h3>异步加载</h3>
        <table ng-repeat="item in  jsonList">
            <tr><td>{{item.desc}}</td><td>{{item.name}}</td></tr>

        </table>

    </div>

</body>
HTML

相关文章:

  • 2021-09-11
  • 2022-12-23
  • 2022-01-05
  • 2021-06-19
  • 2021-04-01
  • 2021-10-09
猜你喜欢
  • 2022-12-23
  • 2021-12-04
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
  • 2021-06-15
  • 2021-12-11
相关资源
相似解决方案