zoukankan      html  css  js  c++  java
  • 4-14 依赖注入(2)

    创建service服务,用来把数据存取的逻辑从组件当中剥离出来。

    home下创建services文件夹

    在创建index.ts

    创建home.service


    把home.service导出

    快捷键生成service类




    在模板这里输入Home。模板帮我们加了注解@Injectable()

    我们把之前写的ts的数据赋值过来

    方法getTtabs返回我们复制过来的数组变量

    注入homeService

    topMenu还是这个类型。只不过现在是一个空的数组。

    调用service的方法。获取getTabs返回的数据

    详情的数据也放到service里面



    getChannels方法




    都设置为空数组,从service中获取数据

    构造函数注入


    ngInit方法内赋值

    注意一定要Providers



    页面效果不变。

    依赖注入的好处 让彼此耦合性降低了。

    不是具体的类,而是一个配置的注入或者是一个值

    把某一个api的url当做一个值传递过去。


    在下面输出




    虽然是获取到了。但是这里有一个警告

    为了避免起名的冲突。我们使用InjectionToken生成一个token

    创建了一个const常量 token 使用 InjectionToken。这样angular在引用的时候会处理 ,避免冲突。

    这样把token当做是唯一辨识





    把这个token粘贴出来

    放在这里导出出去







    providers配置token




    angular6开始有的特性

    实际services可以不在provider里面声明

    一般服务注册到应用的根

    这样写的好处,如果有多个服务在providers声明出来。别人去import我们的module。注入的这些服务都可以用了。它会导致编译成js的时候,所有提供的服务都会编译到js文件当中去。不管你用还是不用,
    但是当我们写成下面这种形式的时候,它就不会出现这种问题了。编译出来的大小就比较小。只有你真正的注入了。才会编译到js里面。这其实就是干这用的。主要是第三类库开发的作者,使用它有效的减小体积。这个写法一直是官方在推动的。

    如果注入到某一个模块就这么写。这里注入到HomeModule中

     

    结束

  • 相关阅读:
    fiddler 抓包工具(新猿旺学习总结)
    Monkey之常用ADB命令(新猿旺学习总结)
    APP压力测试 monkey(新猿旺学习总结)
    linux 系统shell运行程序不退出
    c++字节对齐编译器指令#pragma
    vmware 14 新安装centos7 没法联网
    windows dll的def文件
    c编译器字节对齐指令
    centos 7 进入图形界面
    cent os 7 与cent os 6区别
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/13576919.html
Copyright © 2011-2022 走看看