美文网首页
Angular杂记

Angular杂记

作者: 绝尘kinoko | 来源:发表于2022-05-07 14:51 被阅读0次
  1. ngAfterViewInit钩子
    一般在开发中用到的钩子只有初始化ngOnInit和销毁ngOnDestroy,其他钩子都基本没用过。
    这个钩子是当页面上的dom加载完成时,也就是需要操作dom时调用。
  2. 打包hash配置
    angular.json是整个项目的配置,关于项目打包的配置,在architect.build.options路径。
    默认打包结果会带一串hash,标识不同的打包结果;但如果要在流水线应用,编写包替换脚本,则需要将这串hash去掉。
    上述路径下,将outputHashing设为media。
  3. 浏览器刷新事件
    @HostListener('window: beforeunload', ['$event'])
  4. 使用echarts
    结合使用ngxEcharts,提供了指令、属性和事件,不需要手动setOption以及监听事件。
    用法简单来说为:
    <div echarts [options]="options" (eventName)="handleEvent($event)"></div>
    用echarts指令标识为echartInstance,其他的都通过input和output进行交互。
    有两个小坑:
  • div不能设置idid好像可以设置,出问题可能是别的原因导致的
  • 如果options一开始设置了一个defaultOption,接着在请求后进行options.series.push操作,视图是不会更新的。解决方法有二:
    -- 不设置defaultOption,请求后填充series,再将整个option一次性赋值
    -- 用chartInit事件拿到当前chartInstance,请求后手动setOption
  1. ngOnChanges不触发问题,引用数据类型只有地址改变才会触发,所以如果有类似情况要么一次性构造新值赋值,要么用深拷贝
    参考https://blog.csdn.net/Rulelur/article/details/117432599
  2. AngularJs事件属性名在$scope内都是驼峰的,在HTML中要将驼峰转为中划线,手动!

记录下问题,希望有路过的大佬帮忙解答:

  1. 场景:tabs内容遍历使用组件,*ngComponentOutlet="tab.component",但是需要传参。
    https://angular.cn/api/common/NgComponentOutlet
    查阅官网,提供了注入的方式传参,但似乎只能传静态参数?如果是的话,也太鸡肋了。
    现在的解决方法是将入参传到rootProvider,再注入到子组件里,类似全局状态管理,但还是想知道怎么直接传参。
  2. 离谱问题,真是觉都睡不好了


    bundle warning
    import module

    引入一个module,在node_modules里看是有的,引入语法提示也没报错,结果到页面上就undefined了,重装包、重启都试了,真是满头包。

相关文章

网友评论

      本文标题:Angular杂记

      本文链接:https://www.haomeiwen.com/subject/bicxurtx.html