关于在directive里的transclude方法复制新的元素用法
发布时间:2020-12-15 00:24:38 所属栏目:C语言 来源:网络整理
导读:table class="text" tr class="li1" td class="ln"pre class="de1"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 {{name}} - {{value}} ? ?js部分var app = angular.module('test
<table class="text"> |
<tr class="li1">
<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{{name}} - {{value}}
?
?
js部分
var app = angular.module('test',[]);
?
app.controller('TestController',['$scope',function($scope) {
? $scope.options = [
? ? { name: 'Iron man',value: 'Tony Start'},? ? { name: 'Captain America',value: 'Steve Rogers'},? ? { name: 'Hulk',value: 'Bruce Banner'}
? ];
?
? $scope.hero = 'Iton Man';
}]);
?
app.directive('ntList',['$compile',function($compile) {
? return {
? ? restrict: 'E',? ? transclude: true,? ? template: '',? ? scope: {
? ? ? items: '=',? ? ? itemTemplate: '=',? ? ? onChange: '&'
? ? },? ? link: function(scope,element,attrs,ctrl,transclude) {
? ? ? scope.items.map(function(item) {
? ? ? ? var childScope = scope.$new();//在scope创新一 个新的对象
? ? ? ? angular.extend(childScope,item);//复制对象 具体用法可以看http://www.tuicool.com/articles/vM7r6v
? ? ? ? transclude(childScope,function(clone) { //clone对应的是{{name}} - {{value}}
? ? ? ? ? var listItem = $compile(clone)(childScope);//AngularJS如何动态显示不同的html内容,用$compile 服务 用法参考http://www.gsgundam.com/2014-12-13-angularjs-compile-to-show-dymanic-html-content/
? ? ? ? ? element.find('list-content').append(listItem);
? ? ? ? });
? ? ? });
? ? }
? };
}]);
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!