angular学习

ng-options:

*ng-model

<select class="bs-select form-control" ng-model="queryModel.gl_code" ng-options="c.gl_code as c.gl_name for c in queryModel.category"></select>

 *注意接口异步操作

for循环接口异步操作,递归解决

    $scope.food = function() {
        $scope.hashModel = {
            hash: 0
        }
        $scope.filter.data = []
        $scope.filter.hashData = hashSignature($scope.hashModel);
        goodsService.queryTopCategory(13, $scope.filter.hashData.time, $scope.filter.hashData.rannum, $scope.filter.hashData.signature).then(function(result){
            // console.log(result);
            $scope.sub = function(i){
                if(i == result.length) {
                    $('#tree_1').jstree({
                    'core' : {
                            "multiple": false,//单选,
                            "themes":{
                                "theme" : "classic",
                                "dots" : true,
                                "icons" : false
                            },
                            'data' : $scope.filter.data
                        }
                    });
                }
                else {
                    $scope.filter.hashData = hashSignature($scope.hashModel);
                    goodsService.querySubClassification(14, $scope.filter.hashData.time, $scope.filter.hashData.rannum, $scope.filter.hashData.signature, result[i].gl_code).then(function(result2){
                        // console.log(result2)
                        var children = [];
                        for(var j = 0; j < result2.length; j++) {
                            children.push({'text': result2[j].gl_name, 'id': result2[j].gl_code});
                        }
                        $scope.filter.data.push({'text':result[i].gl_name,'id': result[i].gl_code, 'children': children});
                        $scope.sub(i+1);
                    });
                }
            }
            $scope.sub(0);
        });

        $('#tree_1').on("changed.jstree", function (e, data) {
            // console.log("The selected nodes are:");
            // console.log(data.selected);
            // console.log(data.instance.get_node(data.selected[0]).text);
            if(data.selected[0].length == 4) {
                $scope.filter.goodSubmit = 1;
                $scope.addModel.gl_code = data.selected[0];
                $scope.addModel.gl_name = data.instance.get_node(data.selected[0]).text;
            }
            else {
                $scope.filter.goodSubmit = 0;
            }
        });
        $('#basic').modal('show');
    }
MetronicApp.controller('productionGoodsManageController', function ($rootScope, $scope, $http, $timeout, goodsService) {
    $scope.table = $('#sample_2').DataTable();

    /*$scope.info = $scope.table.page.info();
    console.log($scope.info);*/
    $scope.queryModel={
        c_id: "f3f3c9bf-d91a-4d1f-b338-dedadff6c35f",
        g_name: '',
        gl_code: "",
        g_type: 0,
        page: 1,
        rows: $scope.table.page.info().length
    };

    $scope.productModel = {
        pages: '',
        products: []
    };

    $scope.filter = {
        show_len: 5,
        turn_len: 2,
        g_types: [{code: 0, type: "标准商品"},{code: 1, type: "非标准商品"}],
        g_type_array: ["标准商品","非标准商品"],
        gll_code: "01"
    };

    $scope.loopQuery = function(p) {
        //alert(p)
        while($scope.queryModel.page < p) {
            $scope.queryModel.page++;
            $scope.filter.hashData = hashSignature($scope.queryModel);
            goodsService.getMemberInfo(15, $scope.filter.hashData.time, $scope.filter.hashData.rannum, $scope.filter.hashData.signature, $scope.queryModel).then(function(result){
                //console.log(result);
                for(var i = 0; i < $scope.queryModel.rows; i++) {
                    $scope.productModel.products.push(result.products[i]);
                }
                // console.log($scope.productModel);
            });
        }
    };

    //查询所有一级商品分类信息
    $scope.filter.hashData = hashSignature($scope.queryModel);
    goodsService.queryTopCategory(13, $scope.filter.hashData.time, $scope.filter.hashData.rannum, $scope.filter.hashData.signature).then(function(result){
        // console.log(result);
        $scope.filter.category = result;
        // console.log($scope.filter.category);
        // alert($scope.queryModel.category[0].gl_name)
    });

    //根据父级商品分类编号查询子集商品分类
    /*$scope.filter.hashData = hashSignature($scope.queryModel);
    goodsService.querySubClassification(14, $scope.filter.hashData.time, $scope.filter.hashData.rannum, $scope.filter.hashData.signature, $scope.filter.gll_code).then(function(result){
        // console.log("sub");
        $scope.queryModel.gl_code = result[0].gl_code;
        $scope.filter.sub = result;
        // console.log($scope.filter.sub);
    })*/

    //根据父级商品分类编号查询子集商品分类
    $scope.querySub = function() {
        $scope.filter.hashData = hashSignature($scope.queryModel);
        goodsService.querySubClassification(14, $scope.filter.hashData.time, $scope.filter.hashData.rannum, $scope.filter.hashData.signature, $scope.filter.gll_code).then(function(result){
            // console.log("sub");
            $scope.queryModel.gl_code = result[0].gl_code;
            $scope.filter.sub = result;
            // console.log($scope.filter.sub);
        })
    }


    $scope.query = function() {
        /*$scope.info = $scope.table.page.info();
        console.log($scope.info);*/
        $scope.queryModel.page = 1;
        $scope.filter.hashData = hashSignature($scope.queryModel);
        goodsService.getMemberInfo(15, $scope.filter.hashData.time, $scope.filter.hashData.rannum, $scope.filter.hashData.signature, $scope.queryModel).then(function(result){
            // console.log(result);
            $scope.productModel.pages = result.paramcentcount;
            $scope.productModel.products = result.paramData;
            //$scope.productModel.pages = 3;
            $scope.loopQuery(Math.min($scope.productModel.paramcentcount, $scope.filter.show_len));
        });
    };

    /*$(".next").click(function () {
        //alert("next")
        
    });
    $(".prev").click(function () {
        //alert("prev")
        
    });*/


    $(".input-sm").change(function(){
        //alert($(this).children('option:selected').val());
        $scope.queryModel.rows = $(this).children('option:selected').val();
        var ap = $scope.table.page.info().page;
        var total = $scope.table.page.info().recordsTotal;
        $scope.queryModel.page = parseInt(total/$scope.queryModel.rows);
        var surplus = total%$scope.queryModel.rows;
        if(surplus != 0) {
            $scope.productModel.products.splice($scope.queryModel.page*$scope.queryModel.rows+1, surplus);
        }
        $scope.queryModel.page++;
        $scope.filter.hashData = hashSignature($scope.queryModel);
        goodsService.getMemberInfo(15, $scope.filter.hashData.time, $scope.filter.hashData.rannum, $scope.filter.hashData.signature, $scope.queryModel).then(function(result){
            //console.log(result);
            $scope.productModel.pages = result.pages;
            for(var i = 0; i < $scope.queryModel.rows; i++) {
                $scope.productModel.products.push(result.products[i]);
            }
            console.log($scope.productModel);
        });
        if(ap + $scope.filter.turn_len > $scope.queryModel.page) {
            $scope.loopQuery(Math.min(ap + $scope.filter.turn_len, $scope.productModel.pages));
        }
    });

    $(".pagination").bind("click", "a", function() {
        var ap = $scope.table.page.info().page;  
        if(ap + $scope.filter.turn_len > $scope.queryModel.page) {
            $scope.loopQuery(Math.min(ap + $scope.filter.turn_len, $scope.productModel.pages));
        }
        // alert($scope.queryModel.page + " in " + $scope.queryModel.pages);  
    }); 

    /*var table = $('#sample_2').DataTable();
    $('#sample_2').on( 'page.dt', function () {
        var info = table.page.info();
        alert(info.page + " " + info.pages)
        //$('#pageInfo').html( 'Showing page: '+info.page+' of '+info.pages );
    } );*/
});

 ng-bind-html:

<div ng-repeat="article in articles">
        <div class="panel-heading">
            <h4><b>{{article.title}}</b></h4>
        </div>
        <div class="panel-body">
            <article id="word-display" ng-bind-html="article.content | trustHtml">
            </article>
        </div>
    </div>
success(function (data) {
                        $scope.articles = data;
});
myApp.filter('trustHtml', function ($sce) {
        return function (input) {
            return $sce.trustAsHtml(input);
        }
    });

 $interval:

var timer = $interval(function(){
}, 100, 3);
timer.then(function(){
    console.log("done");
});

var timer = $interval(function(){},100, 10);
timer.then(success, error, notify);
function success(){
console.log("done");
}
function error(){
console.log("error");
}
function notify(){
console.log("每次都更新");
}

var timer = $interval(function(){},100, 10);
this.cancel = function(){
$interval.cancel(timer);
}
原文地址:https://www.cnblogs.com/ACMessi/p/7128581.html