Aurelia中HTML组件和普通组件之间的区别
Difference between HTML component and a normal component in Aurelia?
我从Aurelia开发的标准TypeScript框架开始。
我想给"导航栏"组件添加一些代码,所以我决定将它从一个简单的仅HTML组件转换为一个常规组件。为此,我修改了app.html中的require标记:
<require from="nav-bar.html"></require>
至
<require from="nav-bar"></require>
接下来,我创建了一个nav-bar.ts文件,其中包含以下代码:
import {autoinject} from 'aurelia-framework';
import {customElement, bindable} from 'aurelia-framework';
// import {HttpClient} from 'aurelia-fetch-client';
@autoinject
@customElement('nav-bar')
export class NavBarClass {
public attached() {
console.log("TEST");
}
}
}
我让nav-bar.html保持原样。现在程序运行,控制台包含实例化NavBarClass的TEST值,但是导航栏仅为html时显示的菜单现在不见了。
如何取回菜单?我做错了什么?常规组件与纯HTML组件有何不同?
谢谢你的帮助,-Greg
在标准自定义元素中,可绑定属性在视图模型中定义:
导航栏.js:
export class NavBar {
@bindable router;
...
...
}
在纯html的自定义元素中,没有视图模型,因此可绑定属性列在<template>
元素的bindable
属性上:
导航栏.html:
<template bindable="router">
...
...
</template>
无论哪种方式,导航栏元素的使用都是相同的:
<nav-bar router.bind="router"></nav-bar>
相关文章:
- 设置两个反应组件之间状态的正确方式
- Ember.js:接受的子组件和父组件之间通信的最佳实践
- Angular 2,在没有直接关系的两个组件之间共享一个对象
- 在 React/Redux 中管理同级组件之间的滚动状态
- 如何更新angular2中组件之间的事件数据
- Aurelia中HTML组件和普通组件之间的区别
- Vuejs中同级组件之间的通信
- 尝试在组件之间传递数据时未定义
- React组件之间共享属性
- Reactjs:如何在组件之间共享 websocket
- 在两个组件之间传输状态
- Reactjs 组件之间的通信
- AngularJS:在组件之间进行通信的最佳实践是什么?
- 如何管理独立反应组件之间的通信
- 响应组件之间的交互
- 两个网络组件之间的绑定:谷歌地图+地理定位
- 如何在 Vue.js 中的组件之间共享方法
- 在 React 组件之间交换事件
- 在两个同级React.js组件之间传递数据
- 在reactjs中没有父子关系的不同组件之间进行通信