首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >圆环中的角2路链路

圆环中的角2路链路
EN

Stack Overflow用户
提问于 2016-02-21 14:28:17
回答 1查看 6.9K关注 0票数 5

尝试使用下面的代码创建菜单

代码语言:javascript
复制
<aside id="left-panel">
	<span class="minifyme"> <i class="fa fa-arrow-circle-left hit"></i>
	</span>
	<nav>
		<ul>
			<li *ngFor="#menu of menus" [class.open]="menu === selectedMenu"
				(click)="onSelect(menu)"><a [routerLink]="[menu.action]"> <i
					class={{menu.icon}}></i> <span class="menu-item-parent">{{menu.displayname}}</span>
					<b *ngIf="menu.childrens.length>0"> <em class="fa"
						[ngClass]="{'fa-minus-square-o': menu === selectedMenu, 'fa-plus-square-o': menu !== selectedMenu}"></em>
				</b>
			</a>

				<ul *ngIf="menu.childrens" [class.show]="menu === selectedMenu">
					<li *ngFor="#submenu of menu.childrens" (click)="onSelect(menu)">
						<a> {{submenu.displayname}} </a>
					</li>
				</ul></li>
		</ul>
	</nav>
</aside>

代码语言:javascript
复制
import {Component, OnInit} from 'angular2/core';
import {Router} from 'angular2/router';
import {RouteConfig,RouterLink, ROUTER_DIRECTIVES} from 'angular2/router';
import {MenuService} from './menu.service';
import {Menu} from './menu';


@Component({
  selector: 'my-menu',
  templateUrl: 'app/menu/menu.component.html',
  directives: [ROUTER_DIRECTIVES,RouterLink,RouteConfig]
})
export class MenuComponent implements OnInit {
  public menus: Menu[];
    public selectedMenu: Menu;
   
    constructor(private _menuService: MenuService) { }
    getMenus() {
        this._menuService.getMenus().then(menus => this.menus = menus);
    }
    ngOnInit() {
        this.getMenus();
    }
     onSelect(menu: Menu) { this.selectedMenu = menu; }
}

Getting following error, please suggest

例外情况:在RuntimeMetadataResolver.getViewDirectivesMetadata的DecoratorFactoryBrowserDomAdapter.logError @ angular2.dev.js:23083 angular2.dev.js:23083 STACKTRACE:BrowserDomAdapter.logError @ angular2.dev.js:23083 angular2.dev.js:23083错误上没有发现指令注释:在DecoratorFactory at new BaseException (https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js:7351:21) at DirectiveResolver.resolve (https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js:6654:13) at RuntimeMetadataResolver.getDirectiveMetadata (https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js:22303:47) at https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js:22371:22 at https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js:22371:22 at Array.map ( Array.map ) at Array.map(https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js:22371:22)at Array.map(https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js:22371:22)在C7https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js:24329:63) at https://code.angularjs.org/2.0.0-beta.7/angular2.dev.js:24314:26 at Array.forEach (原生)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-21 14:39:44

您不应该在组件的指令属性中使用RouteConfig,因为它不是指令,而是修饰器。

您可以注意到,RouterLink指令包含在ROUTER_DIRECTIVES中。

使用这个应该就足够了:

代码语言:javascript
复制
directives: [ ROUTER_DIRECTIVES ]

此外,您需要使用@RouteConfig装饰器在组件上配置路由:

代码语言:javascript
复制
@Component({
  selector: 'my-menu',
  templateUrl: 'app/menu/menu.component.html',
  directives: [ROUTER_DIRECTIVES,RouterLink,RouteConfig]
})
@RouteConfig({
  (...)
})
export class MenuComponent implements OnInit {
  (...)
}

请查看此链接,以了解如何配置该链接:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35537342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档