$compile 手动编译

angularjs里比较重要但又很少手动调用的要属$compile服务了,通常在写组件或指令时,都是angularjs自动编译完成的,但有时我们可能需要手动编译,比如封装一个table组件,根据参数实现自定义渲染,增加一列复选框或者一列按钮啥的,这是就需要用到$compile了。

例一:

<body ng-app="myApp"  ng-controller="MyController">
</body>
    <script>
        angular.module('myApp', [])
            .controller('MyController', function ($scope, $compile) {
//这个this是指控制器MyController
                var vm = this;
                vm.msg = 'hello';
                // 创建编译函数
                var compileFn = $compile('<p>{{vm.msg}}</p>');
                // 传入scope,得到编译好的dom对象(已封装为jqlite对象)
                var $dom = compileFn($scope);
                // 添加到文档中
                $dom.appendTo('body');
                //合起来的写法
                body.append($compile('<p>{{vm.msg}}</p>')($scope));            
            })
    </script>
 
  通过$compile服务可以编译html字符串或dom对象或jqLite对象,然后得到一个编译函数,再传入$scope,就会在当前作用域进行编译,返回编译好的jqLite对象,这时就可以直接添加到文档中了(也可以先添加到文档再编译)。
编译的实质其实就是对dom对象解析,使dom对象与scope进行耦合,通过绑定可以实现数据的更新,像Vue其实也是一样的过程。
例二:
<body ng-controller="MyController as appCtrl">
    <p use="appCtrl.html"></p>
</body>
 
    <script>
        angular.module('myApp', [])
            .controller('MyController', function ($scope, $compile, $timeout) {
                var vm = this;
                vm.html = '<h1>{{title}}</h1>\
                             <ul>\
                                  <li ng-repeat="item in items">{{item}}</li>\
                               </ul>'
            })
            .directive('use', function($compile) {
                return {
restrictive:"EA",
                    scope: {
                        use: '='
                    },
                    link: function(scope, elem, attrs) {
                        scope.title = 'list';
                        scope.items = ['list1', 'list2', 'list3'];
                        elem.html($compile(scope.use)(scope))
                    }
                }
            })
    </script>
 

 

转载于:https://www.cnblogs.com/yogic/p/8297007.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++ 不插入重复元素但也不排序_【每日一题】125. 对链表进行插入排序

关注我们获取更多计算机考研信息对链表进行插入&#xff0c;插入排序算法&#xff1a;插入排序是迭代的&#xff0c;每次只移动一个元素&#xff0c;直到所有元素可以形成一个有序的输出列表。每次迭代中&#xff0c;插入排序只从输入数据中移除一个待排序的元素&#xff0c;找…

怎么检查计算机网络是连接,怎么检测网络打印机是否与电脑连接成功【检测方法】...

想必不少宝宝和以前的小编一样&#xff0c;在用网络打印机的时候&#xff0c;有时候能打印&#xff0c;有时候却打印不了。那么如何 检测网络打印机是否与电脑连接成功?跟随小编往下看。系统反反复复告知“无法打印”&#xff0c;让工作本已繁忙的小修近乎奔溃! 那么&#xff…

python画菱形的代码_python绘制菱形

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01;首先&#xff0c;将数据读入到python中&#xff0c;并绘制出生率和死亡率数据的散点图&#xff0c;代码如下&…

计算机实物知识需求市场调研,能力本位计算机维护论文

能力本位计算机维护论文1课程教学现状对于计算机专业学生来说&#xff0c;学会组装计算机系统&#xff0c;分析和解决计算机常见故障是计算机专业学生必须掌握的一项技能&#xff0c;学好本课程对将来就业有很大的帮助。然而&#xff0c;随着计算机技术的快速发展&#xff0c;本…

python爬取bilibili弹幕_python爬虫:bilibili弹幕爬取+词云生成

如果你懒得看下边的文字&#xff0c;我录了一个完整的教学视频在b站上。 我的B站教学&#xff1a;https://www.bilibili.com/video/av75377135?p2 工作原理 b站是提供弹幕接口的&#xff0c;所以我们的整体操作进行如下&#xff1a; 1.到B站获取cid2.将cid与网站固定格式进行链…

access vba 常量数组赋值_聊聊 VBA 数组的那些坑

为什么使用数组&#xff1f;1. 缩减工作薄文件大小&#xff0c;提高运行效率一般而言只是使用 Excel 的内置工作表函数&#xff0c;在运算方面还是很高效的&#xff0c;但有时因为一个单元格牵扯的计算太多&#xff0c;比如调用多单元格数据&#xff0c;对结果文本进行部分替换…

HTML文件可通过www进行传输,使用 zssh 进行 Zmodem 文件传输

Zmodem 最早是设计用来在串行连接(uart、rs232、rs485)上进行数据传输的&#xff0c;比如&#xff0c;在 minicom 下&#xff0c;我们就可以方便的用 Zmodem (说 sz 、rz 可能大家更熟悉)传输文件。只不过串口本身传输速度不快&#xff0c;文件大的话会让人有点崩溃。没有彻底把…

Linux下使用popen()执行shell命令

转载于&#xff1a;https://www.cnblogs.com/caosiyang/archive/2012/06/25/2560976.html 简单说一下popen()函数 函数定义 #include <stdio.h>FILE * popen(const char *command , const char *type ); int pclose(FILE *stream); 函数说明 popen()函数通过创建一个管道…

centos7安装python3.7.4_Centos7升级Python3.7.4

和大家技术分享一下当我们安装完成Centos7后&#xff0c;默认系统Python的版本为2.7.5。我们希望将Python升级到最新版本。 1、安装依赖项 yum install -y openssl-devel openssl-static zlib-devel lzma tk-devel xz-devel bzip2-devel ncurses-devel gdbm-devel readline-dev…

MyEclipse移动开发教程:迁移HTML5移动项目到PhoneGap(二)

MyEclipse开年钜惠 在线购买低至75折&#xff01;立即开抢>> 【MyEclipse最新版下载】 二、将文件从HTML5项目复制到PhoneGap项目中 1. 在HTML5 app项目的www/文件夹的资源中&#xff0c;单击右键&#xff0c;然后选择Copy。 从HTML5项目复制www资源2. 将资源粘贴到新Pho…

pb graph鼠标移上显示数据_Plotly数据可视化:离线版、微软vscode版的Python的基本作图...

1 介绍&#xff1a;1.1 Plotly 是一款用来做数据分析和可视化的在线平台&#xff0c;功能非常强大。1.2 Plotly是一个非常著名且强大的开源数据可视化框架&#xff0c;它通过构建基于浏览器显示的web形式的可交互图表来展示信息。1.3 具有多种语言python、javascript、matlab、…

centos安装无线网卡驱动_CentOS下显卡驱动安装的相关思考

背景&#xff1a;最近在安装显卡驱动&#xff0c;查找了一些网上的教程&#xff0c;但总感觉思路不够清晰&#xff0c;没办法弄清背后涉及的Linux原理&#xff0c;于是参考网上教程&#xff0c;并查阅了相关资料&#xff0c;希望能对显卡驱动安装作一个梳理&#xff0c;以做记录…

获取select被选中的option的值

<select id"select"> <option>绥江</option> <option>西江</option> <option>北江</option> <option>贺江</option> <option>新兴江</option> </select> $(funct…

红石32位cpu通用计算机,我的世界无命令方块32位红石电脑装置详解

来源&#xff1a;游戏园日期&#xff1a;2019-05-14 04:03:07我的世界无命令方块32位红石电脑装置详解。那下面给大家分享的是我的世界中的一个叫做机器编号为RSC-3230的红石电脑装置哦~有喜欢的顽疾啊不妨进来看看下的这个电脑哦~喜欢的话还可以下载下面的存档哦~本作品是一台…

python字符串字面量有哪四种定义方式_Python学习笔记(四)字符串型

字符串是 Python 中最常用的数据类型。我们可以使用引号(或")来创建字符串。 在最新的Python 3版本中&#xff0c;字符串是以Unicode编码的&#xff0c;也就是说&#xff0c;Python的字符串支持多语言。 创建字符串很简单&#xff0c;只要为变量分配一个值即可 View Code …

bzoj4380[POI2015]Myjnie dp

[POI2015]Myjnie Time Limit: 40 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 368 Solved: 185[Submit][Status][Discuss]Description 有n家洗车店从左往右排成一排&#xff0c;每家店都有一个正整数价格p[i]。有m个人要来消费&#xff0c;第i个人会驶过第a[i]个开始…

全国计算机等级考试用报名吗,全国计算机等级考试网上报名流程及考生报名使用说明...

全国计算机等级考试网上报名流程及考生报名使用说明附件&#xff1a;考生报名使用说明(一)注册账号和登录1)考生首次登录系统需要注册登录通行证&#xff0c;若考生有通行证账号&#xff0c;可以直接登录。2)考生也可使用其他账号登录&#xff0c;例如使用“QQ账号”登录。点击…

iptables nat实验_【零基础学云计算】LVS负载均衡群集之NAT模式搭建 (实践篇)...

实验原理图实验环境LVS调度器作为web服务器池的网关LVS服务器配置两块网卡分别连接内外网使用轮询&#xff08;rr&#xff09;调度算法LVS负载调度器网段规划 内网33网关&#xff1a;192.168.144.1 外网36&#xff1a;12.0.0.1web1 192.168.144.151web2 192.168.144.170nfs服务…

rs232串口驱动_RS232与RS485在性能上有啥区别和联系?老电工总结分析,一目了然...

串口是一种非常通用的设备接口&#xff0c;是仪器仪表设备常用的通信接口&#xff0c;常用于远程采集设备数据或者实现远程控制。串口的开发也比较简单&#xff0c;它是很多工程师最喜欢的接口之一。常见的串口协议有RS-232、RS-422、RS-485等&#xff0c;它是电子工程师面对的…

win7里面计算机叫什么,Win7电脑中的mrt.exe是甚么文件

咱们正在运用Win7体系的时分&#xff0c;只有咱们翻开使命办理便能够看失到有一个mrt.exe 步伐正在运转&#xff0c;也没有知叙mrt.exe 是甚么入程的&#xff0c;否不成以制止。这Win7电脑外的mrt.exe 是甚么文件呢&#xff1f;如今便随小编一同来看看电脑外的mrt.exe是甚么文件…