我想声明一个属性并在组件的 HTML 标记中为其赋值,如下所示:
<my-component my-attr="foo"></my-component>
然后我想从我的控制器内部获取此属性的值(my-attr
(。
使用AngularJS 1.6和TypeScript是否可以做到这一点,如果是,如何?
定义组件时,将myAttr
声明为组件的绑定。这样,它的值将成为控制器的一部分。
属性应在bindings
中声明:
app.component('myComponent', {
...
bindings: {
myAttr: '@'
}
});
(绑定类型:在 AngularJS 中指令作用域中的"@"和"="有什么区别?
属性的名称规范化为 camelCase,该值将在控制器实例上设置为属性。因此,您可能希望在控制器类型上相应地声明它:
class MyComponentController
{
myAttr: string;
logAttribute()
{
console.log(this.myAttr);
}
}