zoukankan      html  css  js  c++  java
  • angular 引入 component 报错

    每天抽出一些时间学习 Angular2 ,并准备把手头上的项目移植为 Angular2 , 不过今天又遇到了一些小问题。

    准备写一个导航类适于管理后台常见的右边导航,如博客园的这种:

    !

    使用 g generate component nav-left 建立了一个名为 nav-left 的导航组件。

    这里需要检查app,modile.ts中是否已经有你新建的组件。一般会自动添加,如果不存在需要添加引用:

    import { NavLeftComponent } from './nav-left/nav-left.component';

    模块装饰器需要添加:

    @NgModule({
    declarations: [
    NavLeftComponent,
    ]
    })

    并在 nav-left.component.ts 中新建了一个类,Item 用来保存菜单的项,代码如下:

    import { Component, OnInit } from '@angular/core';
    
    @Component({
      selector: 'app-nav-left',
      templateUrl: './nav-left.component.html',
      styleUrls: ['./nav-left.component.css'],
    })
    
    export class NavLeftItem{
        name:string;
        path:string;
        data:any;
        active?:string="";
    }
    
    export class NavLeftComponent implements OnInit {
    
      constructor() { }
    }
    
    

    开开心心的运行查看报错结果^^~!

    报错的信息忘截图了,大致的意思是找不到这个模块,或这个模块没办法解析。

    这步骤花了好长时间,最终确定问题竟然有两处,也没继续深研,分别是:

    1:需要单独创建数据类。把Item单独提取一个类。 最终结果如图:

    2:我在组件中写了一些预定义的数据,如下:

      //这里需要注意变量顺序,我这里是错的,因为titleList中的其他变量引用还未定义。。。。
      public titleList :Array<{"name":string,"list":any}> =[
        {"name":"后台工具","list":this.adminTool},
        {"name":"运维工具","list":this.maintenanceTool},
        {"name":"运营工具","list":this.statisticalTool},
        {"name":"GM工具","list":this.gmlTool}
      ];
    
      /**
       * 后台工具
       */
      public adminTool:Array<NavLeftItem> = [
        {"name":"账号列表","path":"manage/index","data":null},
        {"name":"账号权限","path":"manage/index","data":null},
        {"name":"账号密码","path":"manage/index","data":null},
        {"name":"账号添加","path":"manage/index","data":null},
        {"name":"游戏列表","path":"manage/index","data":null},
        {"name":"渠道列表","path":"manage/index","data":null},
        {"name":"渠道添加","path":"manage/index","data":null},
        {"name":"操作日志","path":"manage/index","data":null},
        {"name":"操作详情","path":"manage/index","data":null},
      ];
      /**
       * 运维工具
       */
      public maintenanceTool:Array<NavLeftItem> = [
        {"name":"Log服务器列表","path":"manage/index","data":null},
        {"name":"Log服务器添加","path":"manage/index","data":null},
        {"name":"Log入口服务列表","path":"manage/index","data":null},
        {"name":"Log入口服务配置","path":"manage/index","data":null},
        {"name":"Log服务器状态","path":"manage/index","data":null},
        {"name":"Log服务器日志","path":"manage/index","data":null},
        {"name":"Log服务器Qps统计","path":"manage/index","data":null},
        {"name":"Log服务器数据库信息","path":"manage/index","data":null},
        {"name":"Log服务器合并","path":"manage/index","data":null},
      ];
    
    

    一直编译不通过,最终确定问题是顺序问题。。。很尴尬。修改顺序为:

    先定义:titleList 然后定义其他几项。

    问题解决。~~~~~~~~

  • 相关阅读:
    Java之时间处理(当前年的上一年、上一季度、当月、当季)
    Nginx代理之大文件下载失败问题
    PageHelper之排序
    MySQL之集群配置
    Java之判断字符串是否为数字(包含浮点型数据)
    /bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file:
    Error Code: 1153
    413 Request Entity Too Large
    MyBatis分页插件失效问题之解决
    HikariConfig 连接池属性详解
  • 原文地址:https://www.cnblogs.com/yangxiao/p/5913861.html
Copyright © 2011-2022 走看看