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 然后定义其他几项。

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

  • 相关阅读:
    iOS
    UIView
    sql server 无法创建索引 因为对象名称和索引名称重复
    select2多选
    NPOI 给导出Excel添加简单样式
    NPOI简单的给某个单元格字体设置颜色
    ASP.NET MVC5 历史数据查询
    C# 反射Reflection
    C# 程序集Assembly
    GetExecutingAssembly() 和 GetCallingAssembly() 的区别
  • 原文地址:https://www.cnblogs.com/yangxiao/p/5913861.html
Copyright © 2011-2022 走看看