zoukankan      html  css  js  c++  java
  • 初探Angular_03 组件中模板数据绑定

    这里将介绍三种情况的数据绑定

    需要TypeScript的基本知识,如TS数据类型

    一、模板属性绑定数据

      1.模板属性其实HTML的属性,如class,style,title等

      2.先在header.component.ts中设定一个title的属性

      

      3.在模板页header.component.html中绑定div属性title  

    <div [title]='title'>
      设置div的title属性
    </div>

        可以看到,绑定属性的方式是使用中括号[]选择属性名,=号后面写在组件中定义的字段名: [属性名称]='绑定的字段名称'

      4.结果可以看到生成的html中div有title字段

      

    二、模板输出HTML

      如果输出的数据是HTML,那么不能直接使用{{字段}}输出,这会直接输出HTML的文本,包括标签。

      1.定义一段HTML文本

        

      2.直接输出

    <div [title]='title'>
      设置div的title属性
    </div>
    <div>
      <p>直接输出将会是原文输出</p>
      {{htmlcontent}}
    </div>

        结果

          

       可见,无法直接输出HTML。

       3.正确输出姿势 使用 [innerHTML] = 'htmlcontent' 的方式输出,意思是内部HTML等于这个   

    <div [title]='title'>
      设置div的title属性
    </div>
    <div>
      <p>直接输出将会是原文输出</p>
      {{htmlcontent}}
    </div>
    <br/>
    <div [innerHTML] = 'htmlcontent'></div>

      结果

        

    三、数组绑定(JSON)

      1.输出json数组,先定义json数组personlist

    import { Component, OnInit } from '@angular/core';

    @Component({
      selector: 'app-header',  // 这个是转换为标签组件名称
      templateUrl: './header.component.html',
      styleUrls: ['./header.component.css']
    })
    export class HeaderComponent implements OnInit {

      constructor() { }
      // 定义字段
      public title = '这里是头部页';
      // 定义html文本
      public htmlcontent = '<h2><em>测试输出HTML文本</em></h2>';
      public personlist: any[] = [
        {
          id: 1,
          name: 'a1',
          propertys:
            [
              {
                age: 20,
                gender: '男'
              }]
        }, {
          id: 2,
          name: 'a2',
          propertys: [
            {
              age: 20,
              gender: '女'
            }]
        }
      ];
      ngOnInit() {
      }
    }

      2.修改组件模板

      

    <div [title]='title'>
      设置div的title属性
    </div>
    <div>
      <p>直接输出将会是原文输出</p>
      {{htmlcontent}}
    </div>
    <br/>
    <div [innerHTML] = 'htmlcontent'></div>
    <br/>
    <div title="这里将输出json数组">
      <ul>
        <li *ngFor="let person of personlist">
          ID:{{person.id}}
          姓名:{{person.name}}
          <br/>
          <ul>
            <li *ngFor="let item of person.propertys">
              性别:{{item.gender}}
              年龄:{{item.age}}
            </li>
          </ul>
        </li>
      </ul>
    </div>

        结果:

          

      

        

  • 相关阅读:
    iview-cli 采坑记录
    js关于可视区高度的一些运算
    时间戳格式化
    快应用入坑指南
    webpack开发环境配置和生产环境配置
    webpack深入场景——开发环境和生产环境
    react-redux状态管理思想
    禁用浏览器双击时,选中文字的特性
    宝塔7.4.7专业版安装Nginx防火墙后,网站报错:ERR_CONNECTION_REFUSED的解决。
    帝国CMS修改模板或数据报错“您的请求带有不合法参数,已被网站管理员设置拦截!”
  • 原文地址:https://www.cnblogs.com/yeqifeng2288/p/10666567.html
Copyright © 2011-2022 走看看