当前位置: 首页 > 知识库问答 >
问题:

无法在本机元素上绑定angular2指令-routerLink[重复]

萧业
2023-03-14

是的,还有其他类似的问题,但我的场景是不同的,因为我的应用程序的结构...

我决定在所有涉及的文件中放置路由器声明,以确保不会缺少声明的指令。

嗯,我的app结构是这样的:

app.component:它调用了一个html格式的主模板,我的路由器出口就在这个模板中。navbar.component-是放置路由器链接的位置,并导致错误

import {Component} from 'angular2/core';
import {RouteConfig, ROUTER_DIRECTIVES} from 'angular2/router';
import {RouterOutlet} from 'angular2/router';
import {RouterLink} from 'angular2/router';
import {NavBarComponent} from './components/navBar/navbar.component';
import {RoomsComponent} from './components/rooms/rooms.component';
@Component({
    selector: 'my-app',
    directives : [NavBarComponent,RoomsComponent,ROUTER_DIRECTIVES],
    templateUrl : 'app/templates/master.html'
})
@RouteConfig([
    {path:'/rooms', name: 'Rooms', component: RoomsComponent, useAsDefault: true}
])
export class AppComponent { }
import {Component} from 'angular2/core';
import {RouterLink} from 'angular2/router';
import {RouterOutlet} from 'angular2/router';
@Component({
  selector: 'nav-bar',
  template : `<ul>
    <li *ngFor="#item of menuItems; #i=index"><a 
    [ngClass]="{active: activeIndex ==i}" (click)= "navigateTo(i)"  
    [routerLink]="['Rooms']">            {{item.label}}</a></li>
    <div class="exit"><i class="material-icons md-48">exit_to_app</i>    </div>
</ul>
`,
})
export class NavBarComponent {
menuItems =  [
    {
        label : 'Rooms',
        pointsTo : 'Rooms'
    },
    {
        label : 'Bookings',
        pointsTo : 'Bookings'
    },
    {
        label : 'Favourites',
        pointsTo : 'Favourites'
    }
];
activeIndex = 0;
constructor() {
    this.navigateTo = function(ndx){
        this.activeIndex = ndx;
    }
}
}
import {Component} from 'angular2/core';
import {Router, RouteParams} from 'angular2/router';
import {RouterOutlet} from 'angular2/router';
import {RouterLink} from 'angular2/router';
@Component({
    selector : 'rooms',
  template : `
    <h1>I'm the room !</h1>`,
})
export class RoomsComponent {
}
<div class="appContainer">
<div class="appTop">
    <div class="logo">
        <logo></logo>
    </div>
    <div class="navBar">
        <nav-bar></nav-bar>
    </div>
    <div class="mobileMenu">
        mobile menu
    </div>
</div>
<div class="appContent">
    <div class="searchArea">
        Search
    </div>
    <div class="subjectArea">
        <router-outlet></router-outlet>
    </div>
</div>
</div>

main.ts-代码:

import {bootstrap}    from 'angular2/platform/browser';
import {ROUTER_PROVIDERS} from 'angular2/router';
import {AppComponent} from './app.component';

bootstrap(AppComponent, [ROUTER_PROVIDERS]);

共有1个答案

施阳夏
2023-03-14

导出类NavBarComponent{缺少router_directives

@Component({
  selector: 'nav-bar',
  directives : [ROUTER_DIRECTIVES],
  template : `<ul>
    <li *ngFor="#item of menuItems; #i=index"><a 
    [ngClass]="{active: activeIndex ==i}" (click)= "navigateTo(i)"  
    [routerLink]="['Rooms']">            {{item.label}}</a></li>
    <div class="exit"><i class="material-icons md-48">exit_to_app</i>    </div>
</ul>
`,
})
export class NavBarComponent {

就像您在AppComponent中拥有它们一样

 类似资料:
  • 怎么回事?为什么这不起作用? 环境 Visual Studio 2015更新1 ASP.NET 5和MVC6 DNX 4.5.1和5.0 Angular2打字稿

  • 我有问题使用Angular2路由器,我不能解决它。 我还在breadcrumb.ts导入ROUTER_DIRECTIVES 但是当我打开浏览器时,异常如下所示: 无法绑定到'routerlink',因为它不是Breadcrumb>ol:nth-child(0)>li:nth-child(1)>a:nth-child(1)[[routerlink]=['home']]中的已知本机属性

  • 我生成了新的@Directive角CLI, 并且我尝试在我的组件中使用(ChatWindowComponent) 即使within指令只是Angular CLI生成的代码: 我得到了错误: zone.js:388 未处理的promise拒绝:模板解析错误:无法绑定到“appContenteditableModel”,因为它不是“p”的已知属性。 我尝试了几乎所有可能的变化,t 有帮助吗?

  • 是的,这可能是第一百次有人遇到这个问题,但没有解决办法对我有效。。。 我使用角2.0.0 rc和什么都不会工作,我想我错过了一些东西,但我不知道是什么 这是我的文件,它们都可以正确传输,是的,我尝试使用不推荐的路由,是的,我根据文档做了,两者都不起作用。 app.component.ts 主要的ts 指数html 其余的文件几乎都是教程中的复制粘贴,所以我不会用更多的代码来垃圾邮件。。。 更新,我

  • 我正在尝试设置下拉的默认值,我设置了一个默认值的模型,但它没有更新选择 请参阅此https://plnkr.co/edit/bnm5yxx78iykv2Opazol?p=preview

  • 问题内容: 这是主模板的控制器: 这是指令: 这是在主模板中应用指令的方式: 这是从指令模板(website-overview.html)调用的方法: 问题:单击“编辑”时,此错误出现在控制台中: TypeError:无法使用“ in”运算符在1中搜索“ editWebsite” 有人知道这里发生了什么吗? 问题答案: 由于您定义了表达式绑定(),因此如果要在HTML中将其绑定为,则需要使用JSO