angular2如何给<route-outlet></route-outlet>占位之后需要路由到的组件标签上绑定输入属性?

求解,如题目描述,
想给一个组件传递数据,但这个组件在<route-outlet></route-outlet>的位置显示 并不能直接在routeroutlet标签上添加[XX] = "XX",

看文档好像可以通过 @conponent注解的host字段绑定class和attr,
但当我绑定[输入值]的时候就会报错,

@Component({
  selector: 'app-onlinecourse',
  templateUrl: './onlinecourse.component.html',
  host:{
    class:"test",
    '[test]':"test"
  }
......

  @Input()
  test;
.....
 ngOnChanges() {
      console.log(this.test);
  }
//undifind

报错信息:
Can't bind to 'test' since it isn't a known property of 'app-onlinecourse'.

请输入代码

谢谢

阅读 4.9k
3 个回答

angular的host遵循的是模板语法的绑定的规则,可参考(Template Syntax)[https://angular.io/docs/ts/la...

因此,你的host,大概应该如此:

host: {
    '[class.special]': 'test',
    '[attr.aria-label]': 'true'
}
新手上路,请多包涵

给你说个简单的办法
declare let window: any;
之后随便用吧,反正你传来传去也不过是在某个命名空间上存取而已
存到global底下就行

三种方法:
1、通过Service共享数据
2、通过storage共享数据
3、通过消息订阅实现通知
父子组件的数据交互可参考:组件通讯
消息订阅的方式可参考:子组件事件传递

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题