[Angular] Remove divs to Preserve Style and Layout with ng-container in Angular

The Angular <ng-container> is a grouping element that doesn‘t interfere with styles or layout because Angular doesn‘t put it in the DOM.

When we using Content Projection in a DUMP component:

<div class="card" style="width: 18rem;">
  <ng-content select=".heading"> </ng-content>
  <div class="card-body">
   <ng-content select=".body"> </ng-content>
  </div>
</div>

We are using <ng-content> here to get projected element from the SMAR component:

<app-card>
  <div class="heading"> <!-- add a extra div with class selector to wrap the elements -->
    <img class="card-img-top" src="https://picsum.photos/g/200/300" alt="Card image cap">
  </div>
  <div class="body"> <!-- add a extra div with class selector to wrap the elements -->
    <h5 class="card-title">Card Title</h5>
    <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card‘s content.</p>
    <a href="#" class="btn btn-primary">Go somewhere</a>
  </div>
</app-card>

It ends up we have a extra div in the DOM, to remove that extra div, we just need to replace ‘div‘ with ‘ng.container‘:

<app-card>
  <ng-container class="heading">
    <img class="card-img-top" src="https://picsum.photos/g/200/300" alt="Card image cap">
  </ng-container>
  <ng-container class="body">
    <h5 class="card-title">Card Title</h5>
    <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card‘s content.</p>
    <a href="#" class="btn btn-primary">Go somewhere</a>
  </ng-container>
</app-card>

原文地址:https://www.cnblogs.com/Answer1215/p/9221430.html

时间: 2024-10-03 06:44:28

[Angular] Remove divs to Preserve Style and Layout with ng-container in Angular的相关文章

AngularJS 精妙绝伦的控制器

学习要点: 为什么使用控制器 基本原理 创建使用控制器 作用域 组织控制器 单块控制器 复用控制器 控制器继承 多控制器 无作用域控制器 显示更新控制器–使用JQuery UI 为什么使用控制器? 控制器就像领域模型和视图的纽带,它从模型中暴露数据给视图,它给视图提供数据与服务,并且定义了所需的业务逻辑,从而将用户行为转换为模型上的变化. 一.理解基本原理 控制器是通过NG的Module.controller来创建的,它接受一个控制器名称和一个工厂函数,这个工厂函数内部有一个$scope服务,用

AngularJS进阶(三十九)基于项目实例解析ng启动加载过程

基于项目实例解析ng启动加载过程 前言 在AngularJS项目开发过程中,自己将遇到的问题进行了整理.回过头来总结一下angular的启动过程. 下面以实际项目为例进行简要讲解. 1.载入ng库 2.等待,直到DOM树构造完毕. 3.发现ng-app,自动进入启动引导阶段. 4.根据ng-app名称找到相应的路由. 5.加载默认地址. 6.Js顺序执行,加载相应模版页 sys_tpls/home.html 7.在此,可以看到index路由中只是填充了ui-view为sys_login的div模

Styles and Themens(2)与style相关的属性详表

在R.attr中 Constants absListViewStyle Default AbsListView style. accessibilityEventTypes The event types this serivce would like to receive as specified in AccessibilityEvent. accessibilityFeedbackType The feedback types this serivce provides as specif

使用 angular directive 和 json 数据的 D3 带标签 donut chart示例

利用angular resource加载priorityData.json中的json数据,结合D3画出甜甜圈图.运行index.html结果如图所示: priorityData.json中json数据如下: { "priority":{ "Blocker":12, "Critical":18, "Major":5, "Minor":30, "Trivial":24 } } index.

All About Angular 2.0

angular All About Angular 2.0 Posted by Rob Eisenberg on  November 6th, 2014. Have questions about the strategy for Angular 2.0? This is the place. In the following article I'll explain the major feature areas of Angular 2.0 along with the motivation

angular 输入框实现自定义验证

此插件使用angular.js.JQuery实现.(jQuery的引入需在angular 之前) 用户可以 在输入框输入数据后验证 必填项.整数型.浮点型验证. 如果在form 里面的输入框验证,可以点击 提交按钮后,实现 必填项验证. 效果图如下: (1)验证未通过时,背景标红等样式为 input.ng-invalid, select.ng-invalid { background-color: #ee82ee !important; border: 1px solid #CCC; } .qt

angularJS (2) angular.min.js

angular.min.js /* AngularJS v1.2.29 (c) 2010-2014 Google, Inc. http://angularjs.org License: MIT*/(function(V,W,v){'use strict';function z(b){return function(){var a=arguments[0],c,a="["+(b?b+":":"")+a+"] http://errors.a

自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选&amp;多选下拉框

先说点闲话,熟悉Angular的猿们会喜欢这个插件的. 00.本末倒置 不得不承认我是一个喜欢本末倒置的人,学生时代就喜欢先把晚交的作业先做,留着马上就要交的作业不做,然后慢悠悠做完不重要的作业,卧槽,XX作业马上要交了,赶紧补补补.如今做这个项目,因为没找到合适的多选下拉Web插件,又不想用html自带的丑陋的<select multiple></select>,自己花了一整天时间做了一个.或许这样占用的主要功能开发的时间,开发起来会更有紧迫感吧.感觉自己是个抖M自虐倾向,并且伴

angular源码分析一

1.angular 初始化流程 function(window, document, undefined) {  //定位到4939行,这里是angularjs开始执行初始化的地方,见代码      styleDirective = valueFn({        restrict: "E",        terminal: !0     });  bindJQuery(), publishExternalAPI(angular), jqLite(document).ready(f