Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角2外部输入_Angular - Fatal编程技术网

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); @组件({

请问你能帮忙吗?从Angular 2开始,有以下问题

我的组成部分如下:

@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 **/
    }
}