Seperti yang dinyatakan, saya telah menulis dua arahan saya ingin menerapkannya pada elemen yang sama Mula-mula lakukan ulangan dan kemudian ikat, hanya yang pertama melaksanakan bind
>
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>angular</title>
<script src="http://cdn.bootcss.com/angular.js/1.2.10/angular.min.js"></script>
</head>
<body ng-app="app">
<p ng-controller="test">
<input type="text" ng-model="msg">
<p lxc-bind="msg" lxc-reapeat="3">123123</p>
<!-- <p lxc-reapeat="3">lxc</p> -->
</p>
<script>
angular.module('app',[])
.controller('test',function($scope){
$scope.msg = 'test';
})
.directive('lxcBind',function(){
// Runs during compile
return {
restrict: 'A', // E = Element, A = Attribute, C = Class, M = Comment
link: function($scope, iElm, iAttrs, controller) {
$scope.$watch(iAttrs.lxcBind,function(newValue){
iElm.text(newValue);
})
}
};
})
.directive('lxcReapeat',function(){
return {
restrict:'A',
priority: 1000,
link:function($scope,$elm,$attr){
var repeatNum = $attr.lxcReapeat;
for (var i=repeatNum-2;i>= 0;i--){
var dom = $elm.clone();
$elm.after(dom);
}
}
}
})
</script>
</body>
</html>
Pertama, kaedah
clone
hanya mengklon nod, dan peristiwa terikat tidak akan diklon.Perkara kedua, apabila menambahkan nod pada dokumen secara dinamik, arahan sudut tidak akan berkuat kuasa dan memerlukan kompilasi dinamik.
Rendering:
dan
ng-repeat
Pelaksanaan di atas tidak mempunyai masalah fungsi, tetapi pembentukannya tidak begitu seragam. Jadi, saya buat sedikit pengubahsuaian
Perbandingan akhir
请采纳
.