• python , angular js 学习记录【2】


    1.不同scope之间的通信

    (1)无父子关系的scope通信:

    在需要操作的scope里面定义一个事件,名称为delete_host,参数为data

    $rootScope.$on('delete_host', function(event,data) {
                angular.forEach($scope.hosts, function (item, i) {
                    if (item.id == data) {
                        $scope.hosts[i].deleted = true;
                    }
                    if($scope.selected_host && $scope.selected_host.id == data){
                        $scope.selected_host = null;
                    }
    
                })
            });

    在需要触发该事件的scope里面触发

    $rootScope.$emit('delete_host',$scope.selected_host.id);

    注意为rootscope,emit

    (2)父子关系下scope通信

    <div  ng-controller="FatherCtrl">
        <div  ng-controller="ChildCtrl">
        
        </div>
    </div>

    父scope里面写事件,传递参数为data

    $scope.$on('change-breadcrumb', function(event,data) {
                $scope.breadcrumb = Util.breadcrumb("h"+$routeParams.id,data);
            });

    子scope里面触发事件,注意为emit

    $scope.$emit('change-breadcrumb',newValue)

    子scope里面写事件,传递参数为data

    $scope.$on('showdetail-storage', function(event,data) {
                $scope.selected_storage = data ;
            });

    父scope里面触发事件,注意为broadcast

    $scope.$broadcast('showdetail-storage',storage);

    备注:父类向子类触发事件 用boradcast

    子类向父类触发事件 用emit

    2.定时任务

    linux里面的cron可以实现定时任务。

    crontab -e 编辑执行周期 以及执行方法
    00 00 * * * python (路径)/license_day_count.py  每天00:00分执行该py文件
    service crond stop 关闭服务 service crond start开启服务
    /var/spool/mail/root 可查看部分信息

    打开base64加密的文件,定时更新,并加密存入文件

    daycountfile = open('/opt/filename"')
    try:
        daycountstr = daycountfile.read().strip()
        daycount = int(base64.decodestring(daycountstr))
        daycount = daycount - 1
        file_writer = open('/opt/filename'', 'w')
        file_writer.write(base64.encodestring(str(daycount)))
        file_writer.close()
    finally:
        daycountfile.close()

    3.代码冗余处理

    从List<Entity>里面获取id的列表

    storage_ids = [s.id for s in storages]
    storage_names = [s.name for s in storages]

    从LIst<JsonObj>里面获取某个属性的列表

    alivenames = [s.get('storage') for s in result]

    比较storage_names和alivenames ,如果后者缺少某个值,则进行某些操作

    for storage in storages:
                        if storage.name not in alivenames:
                            result.append({"storage": storage.name, "name": ""})
  • 相关阅读:
    Nginx性能测试
    Centos 7.0设置/etc/rc.local无效问题解决
    Centos 7.0系统服务管理
    Centos 7.0设置静态IP
    importError:cannot import name imsave/imread等模块
    一位父亲写给儿子的信:今天你努力一点,比将来低头求人强100倍
    清华大学计算机学科推荐学术会议和期刊列表---人工智能与模式识别
    在使用python语言的open函数时,提示错误OSError: [Errno 22] Invalid argument: ‘文件路径’
    论文阅读笔记---HetConv
    typeerror: __init__() missing 2 required positional arguments: 'inputs' and 'outputs'
  • 原文地址:https://www.cnblogs.com/cuiyf/p/4686231.html
Copyright © 2020-2023  润新知