zoukankan      html  css  js  c++  java
  • 6-4 使用 rxjs 高阶操作符添加广告位

    学习制作底部的产品滚动列表


    热门的tab比较特殊一点

    原来的时候,我们这里有个else,

    上面是热门广告图和轮播图的区别

    对上面那部门做一个小的改造。当前我们的写法会多出一个div的节点。但是div的节点又没什么用。

    ng-container

    这里我们可以用一个ng-container。它的作用就是不增加dom节点。什么都可以做还不增加dom节点。


    如果我们在下面的地方都引用它的话,都这么写可能会 比较麻烦

    小技巧,再套一层ng-container,把下面的ngIf拿出来。

    as tab。把async的流当成一个常量

    下面直接用tab这个变量就可以了。 

    下面是广告的容器,里面有个container









    api


    当等于hot的时候就展示hot的广告。

    等于men就是男装






    因为我们的模型有可能会在多个地方用,所以在shared里面用。它是跨模块的。








    要传递参数


    组件中使用

    虽然我们接口访问得到的是一个数组,但是我们只显示一个图




    那么这个tab值从哪里来呢?


    tab值必须从上面的获取

    把下面的方法,搬到上面的subscribe里面。

    rxjs,流中有流

    高阶流,流和流之间有关系。流中有流。
    流中有流不是用subscribe嵌套。
    用switchMap

    switchMap的参数就是外层的流的值



    然后返回一个我的流



    这样好处就是不用subscribe里面再嵌套subscribe。而且这个流我还可以重用。而且当你一旦subscribe之后,那个流就没有办法再重用了。
    switchMap会把getAdTab中的流拍扁到外层流当中来

    外层流在接收的时候,它是不出错的

    如果我们这里换成map。那么接收的地方就报错

    里面的流就变成Observable流中嵌套一个Observable

    switchMap的特点就是把流中的值给取出来。虽然我套了一个流,但是我可以把流中的值拍扁出来之后,到外层来。

    当外层的流发生会立刻切入到里层的流。我们可以通俗的理解为先进行外层的流,再进行里层的流。
    所以先做什么,再做什么的时候,往往可以使用switchMap


    这里我们其实得到的是一个数组

    先用filter过滤,比如返回的元素是大于0的。 然后用map。只获取第一个数组的第一个元素。



    图片出来了就,但是样式还没有加。






    广告就算是讲完了。

     

    结束

  • 相关阅读:
    撕裂寂寞
    创业中的“孙子兵法”
    生命的颜色占卜
    常常激励我们的36句话
    创建自己的3D虚拟身体!
    富人和穷人的八大差异
    有时,孤单是一种享受
    JavaScript类
    上网的十条基本礼节
    程序设计中的感悟
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/13596048.html
Copyright © 2011-2022 走看看