zoukankan      html  css  js  c++  java
  • 自己练习的一些应该熟记的代码

    
    
    $scope.$apply的用法和$scope.$watch的用法:

    var
    yanApp = angular.module('yanApp',[]) .controller('first',function($scope){ $scope.name='yanjinyun'; $scope.count=0; /*setInterval(function(){ $scope.$apply(function(){ $scope.name = new Date(); }) },2000);*/ $scope.$watch('name',function(){ var ss=$scope.count++; if(ss>10){ alert('hellor world'); } }) });

     两个控制器共享一个对象的代码

    angular.module('myApp',[])
    .factory('Data',function(){
        return {message:'111'};
    })
    .controller('firstController',function($scope,Data){
        //alert(Data.message);
        $scope.Data = Data;
    })
    .controller('secondController',function($scope,Data){
        $scope.Data = Data;
    });

     angular常用的table和select

    <body>
    	<div ng-app='yanApp' ng-controller='yanController'>
    		<table>
    			<tr ng-repeat='x in names'>
    				<td>{{x.name}}</td>
    				<td>{{x.age}}</td>
    			</tr>
    		</table>
    		<hr/>
    		<select ng-model="selectedName" ng-options="x.name for x in names">
    			
    		</select>
    		<div>{{selectedName}}</div>
    	</div>
    </body>
    <script type="text/javascript">
    var app = angular.module('yanApp',[]);
    function yanFirstController($scope){
    	$scope.names = [
    		{'name':'yan1','age':'1'},
    		{'name':'yan2','age':'2'},
    		{'name':'yan3','age':'3'},
    		{'name':'yan4','age':'4'},
    		{'name':'yan5','age':'5'}
    	];
    
    }
    app.controller('yanController',['$scope',yanFirstController]);
    
    
    </script>
    

      

    模板 table中简单的函数的编写,特别注意最后的watch中的true这个。
    var findIndex = function(id){ var index = -1; angular.forEach($scope.cart,function(item,key){ if(item.id==id){ index = key; return; } }); return index; } $scope.remove = function(id){ var index = findIndex(id); if(index > -1){ $scope.cart.splice(index, 1); } } $scope.totalPrice = function(){ var price = 0; angular.forEach($scope.cart,function(item){ price += item.quantity * item.price; }); return price; } /** * 计算总购买数 */ $scope.totalQuantity = function () { var total = 0; angular.forEach($scope.cart, function (item) { total += parseInt(item.quantity); }) return total; } $scope.reduce = function(id){ var index = findIndex(id); if(index > -1){ if($scope.cart[index].quantity > 0){ $scope.cart[index].quantity--; }else{ var returnKey = confirm('是否从购物车内删除该产品!'); if(returnKey){ $scope.remove(id); } } } } $scope.$watch('cart',function(newV,oldV){ angular.forEach(newV,function(item,key){ if(item.quantity<1){ var ss = confirm('是否从购物车内删除该产品'); if(ss){ $scope.remove(item.id); }else{ item.quantity = oldValue[key].quantity; } } }); },true);

    城市下拉列表双向关联:

    <div ng-app="yanApp" style="margin-top: 100px;">
    
        <form name="myForm" action="kittencup.php" ng-controller="yanController" class="container form-horizontal">
    	<div class="form-group">
                <label class="col-sm-2 control-label">出生地</label>
                <div class="col-sm-3">
                    <select class="form-control" ng-change="data.area = false" ng-model="data.province" ng-options="x.id as x.name for x in cities | cityFilter:0"></select>
                </div>
                <div class="col-sm-3">
                    <select class="form-control" ng-show="data.province" ng-model="data.area" ng-options="x.id as x.name for x in cities | cityFilter:data.province"></select>
                </div>
                <div class="col-sm-3">
                    <select class="form-control" ng-required="true" ng-show="data.province && data.area" ng-model="data.city" ng-options="x.id as x.name for x in cities | cityFilter:data.area"></select>
                </div>
        </div>
         </form>
    
    </div>
    

      

    var app = angular.module('yanApp',[]);
    function yanFirstController($scope){
    	$scope.cities = [
                {
                    name: '上海',
                    parent: 0,
                    id: 1
                },
                {
                    name: '上海市',
                    parent: 1,
                    id: 2
                },
                {
                    name: '徐汇区',
                    parent: 2,
                    id: 8
                },
                {
                    name: '长宁区',
                    parent: 2,
                    id: 3
                },
                {
                    name: '北京',
                    parent: 0,
                    id: 4
                },
                {
                    name: '北京市',
                    parent: 4,
                    id: 5
                },
                {
                    name: '东城区',
                    parent: 5,
                    id: 6
                },
                {
                    name: '丰台区',
                    parent: 5,
                    id: 7
                },
                {
                    name: '浙江',
                    parent: 0,
                    id: 9
                },
                {
                    name: '杭州',
                    parent: 9,
                    id: 100
                },
                {
                    name: '宁波',
                    parent: 9,
                    id: 11
                },
                {
                    name: '西湖区',
                    parent: 100,
                    id: 12
                },
                {
                    name: '北仑区‎',
                    parent: 11,
                    id: 13
                }
            ];
        // 让城市关联使用
            this.findCityId = function (parent) {
                var parentId;
                angular.forEach($scope.cities, function (city) {
                    if (city.id === parent) {
                        parentId = city.parent;
                        return;
                    }
                })
    
                return parentId;
            }
             // 第一次打开页面 需要初始化一下
            $scope.data = {
                hobbies: [1, 2],
                city: 1
            };
            this.initCity = function(){
                if ($scope.data.city !== undefined) {
                    $scope.data.area = this.findCityId($scope.data.city);
                    $scope.data.province = this.findCityId($scope.data.area);
                }
            }
            this.initCity.call(this);
            
    
    
            // 先保留一份默认值
            $scope.origData = angular.copy($scope.data);
    
    }
    function cityFilter(){
        return function (data, parent) {
            var filterData = [];
            angular.forEach(data, function (obj) {
                if (obj.parent === parent) {
                    filterData.push(obj);
                }
            })
    
            return filterData;
        }
    }
    app.controller('yanController',['$scope',yanFirstController])
        .filter('cityFilter',cityFilter);
    

    //reset事件:

    var that = this;
        // 第一次打开页面 需要初始化一下
        $scope.data = {
            hobbies: [1, 2],
            city: 3
        };
        $scope.origData = angular.copy($scope.data);
        $scope.reset = function(){
            $scope.data = angular.copy($scope.origData);
            that.initCity();
            //$scope.myForm.$setPristine();
        }
    

      

  • 相关阅读:
    CF351E Jeff and Permutation
    2018-8-10-win10-uwp-绑定-OneWay-无法使用
    2018-8-10-win10-uwp-绑定-OneWay-无法使用
    2018-2-13-C#-通配符转正则
    2018-2-13-C#-通配符转正则
    2019-9-2-win10-uwp-列表模板选择器
    2019-9-2-win10-uwp-列表模板选择器
    2018-2-13-win10-uwp-InkCanvas控件数据绑定
    2018-2-13-win10-uwp-InkCanvas控件数据绑定
    2018-2-13-win10-uwp-unix-timestamp-时间戳-转-DateTime
  • 原文地址:https://www.cnblogs.com/coding4/p/5572714.html
Copyright © 2011-2022 走看看