angular模板加载 ----ng-template

Angularjs作为mvc(或者说mvvm)框架,同样具备模板这一基本概念。

NG加载模板的顺序为 内存加载---AJAX加载。

内存加载

如果之前使用过Bootstrap 插件的ng版,即angular-ui,就会了解到这种方式的具体应用。模板本质上是字符串,把字符串直接写入内存,加载时直接从内存获取,速度会更快,有两种方式显式启用内存加载。

  • 通过使用$templateCache service来实现

    angular.module(‘myApp‘, [])
      .controller(‘myCtrl‘, [‘$scope‘,‘$templateCache‘, function($scope,$templateCache){
           var tmp = ‘<h4>lovestory</h4>‘
                 + ‘<p>这是直接调用$templateCache服务获取模板文件的方式</p>‘
                 + ‘<a href="http://www.baidu.com">服务启用templateCache方式</a>‘;
           $templateCache.put(‘lovestory.html‘,tmp);
       }])
    <script type="text/ng-template" id="lovestory.html">
        <h4>lovestory</h4>
        <p>这是script标签获取模板文件的方式</p>
        <a href="http://www.baidu.com">标签启用templateCache方式</a>
    </script>

    这里需要注意,type="text/ng-template"是指明这是ng模板,id属性是指实际使用模板时的一个引用,标签之间的内容才是实际的模板内容。而且,需要注意,id绝对不是URL,这个script标签绝对不会发出HTTP请求,具体讨论见最后。
    实际应用模板时候,使用ID属性,即可从内存中获取对应数据。

    <div ng-include="‘lovestory.html‘" class="well"></div>

    <div ng-include="‘lovestory.html‘" class="well"></div>

原文地址:https://www.cnblogs.com/calvin-dong/p/9534678.html

时间: 2024-10-11 21:24:37

angular模板加载 ----ng-template的相关文章

Django Template模板层 (下) ----------- 过滤器、人性化过滤器、模板继承、模板加载

---恢复内容开始--- 过滤器 除了模板标签可以帮助我们对数据或者进行逻辑处理.django 中还提供了一款工具叫做过滤器,过滤器也可以实现一些模板变量的运算,判断或是其他逻辑处理. add 语法: {{ var1|add:var2 }} add 过滤器可以实现 var1 与 var2 的相加,并且在遇到其他相同数据类型的,比如列表时,加号还可以重载为拼接功能 过滤器首先会将数据转换成Int类型,进行相加,如果转换失败,则会尝试使用 Python 中的数据类型 列表.元祖等这样的数据类型来进行

velocity模板加载

http://hi.baidu.com/ly_dayu/item/828b09c5c3c5e547a8ba9409 velocity使用基本来说比较简单,但在加载模板时老出问题,很多初学者经常会遇到找不到模板这种异常.本文就针对目前常用的三种模板加载方式做以说明.  一.velocity默认的加载方式(文件加载方式) Java代码   package com.velocity.test; import java.io.StringWriter; import java.util.Properti

angular懒加载的一些坑

写在前面 最近在工作中接触到angular模块化打包加载的一些内容,感觉中间踩了一些坑,在此标记一下. 项目背景: 项目主要用到angularJs作为前端框架,项目之前发布的时候会把所有的前端脚本打包压缩到一个文件中,在页面初次访问的时候加载,造成页面初始载入缓慢,在此基础上,提出按需加载,即只有当用户访问某个模块的时候,该模块的脚本才会加载. 工具类: 项目使用grunt打包根据AMD规范,使用grunt-contrib-requirejs来压缩合并模块,同时用ocLazyLoad来完成ang

freemarker模板加载TemplateLoader常见方式

使用过freemarker的肯定其见过如下情况: java.io.FileNotFoundException: Template xxx.ftl not found. 模板找不到.可能你会认为我明明指定了文件,并且文件存在,但是为什么就是说找不到呢? 经过研究官方的API,原来freemarker在加载模板时,建议使用TemplateLoader,通过TemplateLoader指定从哪个目录开始加载模板,并且把模板加载在缓存中. API的TemplateLoader是一个接口,他有如下几个实现

FreeMarer 模板加载,使用FreeMarker加载远程主机上模板文件

FreeMarker加载模板文件的三种方式: 1.从文件目录加载 2.从类路径加载 3.从Servlet上下文加载 其中第二个和第三个常用在Web开发环境中,类路径也会使用在普通的Java Project中, 如果模板文件不是和应用程序放在同一台主机上,那么如何去读取和解析这些模板文件呢?答案是可以解决的,FreeMarker就提供给一种加载模板的方式,查看API就有URLTemplateLoader类,该类为抽象类,从名字就可以看出从给定的URL加载模板文件,这个URL并没有限定来源, 来源可

angular 图片加载失败 情况处理? 如何在ionic中加载本地图片 ?

1.angular 图片加载失败 情况处理 在directive中定义组件,在ng-src错误时,调用err-src app.directive('errSrc',function(){ return { link: function(scope, element, attrs){ if(attrs.src == 'undefined'){ attrs.$set('src', attrs.errSrc); } element.bind('error', function() { if (attr

以及ajax以及angularjs 动态模板加载并进行渲染

1. 源码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script type="text/javascript" src="js/jquery-1.11.1.min.js"></script> <script type="text/java

Angular页面加载闪现解决方案 ng-cloak

在做Angular项目时,经常会遇见在浏览器上闪烁表达式({{ express }} ),及模块(div)的闪烁,会闪现/闪烁隐藏的数据,之前用过vue.js,可以通过v-clock解决,同理Angular也可以通过ng-cloak来实现防止闪烁的方案. <div id="template1" ng-cloak>河马家</div> <div id="template2" ng-cloak> {{hema}}</div>

django模板加载静态资源

1. 目录结构 /mysite/setting.py部分配置: # Django settings for mysite project. import os.path TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". # Always use forward slashes, even on Windows.