【问题标题】:What does #id in input tag mean?输入标签中的#id 是什么意思?
【发布时间】:2018-02-13 07:48:31
【问题描述】:

从这个 Angular.io tutorial,我展示:

<input #searchBox id="search-box" (keyup)="search(searchBox.value)" />

我不明白的地方:#searchBox。谁能解释一下?

标签让我想起了 jQuery 选择器的 ids,但我不太确定这意味着什么,因为我们已经有了一个 id。

【问题讨论】:

标签: html angular input hashtag


【解决方案1】:

简单来说:

  1. 它被称为模板引用变量(又名引用变量),因为它是在模板中声明的,并且经常在 Javascript(typescript) 中使用。

  2. 模板引用变量类似于var id(但不相同),可用于引用模板中的几乎任何 DOM 元素(HTML 元素、指令、组件)。

  3. 模板引用变量在 Reactjs 中也可用。

  4. 在 Angular 中,您可以使用 #somenameref-somename 来声明模板引用变量。

那么我应该如何使用这些 TRV(模板参考变量),你应该看看 library documentation

【讨论】:

    【解决方案2】:

    这是一个模板引用变量。 在此处查看更多详细信息:https://angular.io/guide/template-syntax#template-reference-variables-var

    【讨论】:

    • 你能用你自己的话解释一下什么是模板参考。请问变量是?
    • @gsamaras 当然。
    【解决方案3】:

    它被用作组件内的元素选择器...

    component.html

    <input #searchBox id="search-box" (keyup)="search(searchBox.value)" value='4'/>
    

    component.ts

    @ViewChild('searchBox') input; 
    
    ngAfterViewInit() {
      console.log(input.nativeElement); // logs the javascript object for the element.
      console.log(this.input.nativeElement.value); // logs 4
    }
    

    【讨论】:

      【解决方案4】:

      模板引用用于为您的控制类提供对元素的引用。 #searchBox 会给你一个输入元素的引用,如果你在打字稿中定义它:

      @ViewChild('searchBox') searchBox;
      

      现在您可以使用该引用来控制或询问您的输入元素,例如:

      this.searchBox.nativeElement.focus();
      

      【讨论】:

        【解决方案5】:

        使用选择框的模板参考变量

        <select #myColor (change) = "setData(myColor.value)"></select> 
        

        看代码sn -p,#myColor是一个模板引用变量。选择框的选中值可以通过myColor.value访问

        使用 NgForm 的模板引用变量

        如何使用模板引用变量访问 NgForm 指令

        <form (ngSubmit)="onSubmitPersonForm(myForm)" #myForm="ngForm">
            <input name="name" required [(ngModel)]="person.pname">
            <button type="submit" [disabled]="!myForm.form.valid">Submit</button>
        </form>  
        

        ngSubmit:它可以将角度表达式绑定到表单的onsubmit事件。在这里,表单提交的 onSubmitPersonForm 组件方法将被调用。

        ngForm:表单指令的可嵌套别名

        这里我们将 ngForm 的模板引用变量用作 #myForm="ngForm" 。现在我们可以使用 myForm 代替 ngForm 来检查表单的有效性,我们也可以在我们的角度使用它

        使用输入文本框的模板参考变量

        模板引用变量是我们可以访问 DOM 属性的变量。在我们的示例中,我们使用了输入框的以下 DOM 属性。

        <input type="text" #mobile placeholder="Enter Mobile Number">
        

        在上面的输入文本框中,#mobile 是一个模板引用变量。要获取 DOM 属性,我们执行以下操作。

        mobile.placeholder:如果我们指定了,它将给出我们文本框的占位符。

        mobile.value:它将给出我们文本框的值。

        mobile.type:它将给出输入元素的类型。在我们的示例中,类型是文本。

        【讨论】:

          【解决方案6】:

          这是模板引用变量 它们通常被声明为#variable,并且可以在模板中的任何地方使用。

          在这个特定场景中,#searchBox 声明了一个变量,该变量将存储在文本框中输入的任何内容的值。

          此外,您还可以在 keyup 函数中看到此模板变量#searchBox 的使用,它用于读取值本身。以同样的方式,您可以在代码中的任何位置使用此变量。

          【讨论】:

            猜你喜欢
            • 2016-01-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-07-09
            • 2014-01-08
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多