Angular 角2外部输入
请问你能帮忙吗?从Angular 2开始,有以下问题 我的组成部分如下:Angular 角2外部输入,angular,Angular,请问你能帮忙吗?从Angular 2开始,有以下问题 我的组成部分如下: @Component({ selector: 'myapp', inputs: ['mynumber'] }) @View({ template: `<p>The next number is {{ mynumber + 1 }}</p>' }) export class App { mynumber: number; } bootstrap(App); @组件({
@Component({
selector: 'myapp',
inputs: ['mynumber']
})
@View({
template: `<p>The next number is {{ mynumber + 1 }}</p>'
})
export class App {
mynumber: number;
}
bootstrap(App);
@组件({
选择器:“myapp”,
输入:['mynumber']
})
@看法({
模板:`下一个数字是{{mynumber+1}'
})
导出类应用程序{
我的号码:号码;
}
引导(App);
在我的HTML中:
<myapp [mynumber]='41'></myapp>
但在跑步时,我会得到以下信息:
下一个数字是NaN
看起来很简单,但我遗漏了一些东西。我试图实现的是将应用程序外部的值传递给它
谢谢。您不能为应用程序的根组件指定属性绑定(输入)。如果您真的想为它指定一些绑定,您应该使用额外的组件。看
从'angular2/angular2'导入{组件,输入}
@组成部分({
选择器:“myapp”,
模板:`
下一个数字是{{mynumber+1}}
`
})
类应用程序{
@Input()mynumber:number;
}
@组成部分({
选择器:'根',
指令:[App],
模板:`
`
})
导出类根{}
解决方法是使用ElementRef
直接读取它:
constructor(elementRef:ElementRef) {
console.log(elementRef.nativeElement.getAttribute('someattribute');
}
像这样使用它
<myapp mynumber='41'></myapp>
另请参见使用ElementRef更新答案:改用Renderer.selectRootElement。 任何试图使用ElementRef.nativeElement的人都可能会看到各种警告,说明这是一种万不得已的方法等等。下面是一个经过修改的更安全的版本
constructor( renderer: Renderer ){
let rootElement = renderer.selectRootElement('app-root');
this.whateverInput = rootElement.getAttribute('my-attribute');
}
对于使用角度4的用户: 如果您决定将其用作这样的属性
<myapp mynumber='41'></myapp>
在我的应用程序中测试并成功运行
找到了解决方法:这是在根组件中设置输入的问题。尝试在子组件中传递
mynumber
,它应该可以工作。Hi。谢谢你的回复,但我正在尝试将一个值从外部角度传递给它。不知道怎么做?干杯。谢谢我想我在问不可能的事。我希望在主html页面上输入来自其他控件等的一些数据。谢谢你的帮助
class Component {
constructor(@Attribute('attributeName') public param:String){
/** some process with your injected param **/
}
}