AngularJS clone directive command replication, angularjsdireve ve
Requirement Background: directive modularized a certain form information, but multiple form information can be added. In this case, clone direve VE is involved.
Solution: You can use $ compile in angularjs to clone direve ve, which usually involves data binding.
Specific Method:
Tw. factory ('ctictiveutil ', [function () {var DirectiveUtil = {}; DirectiveUtil. directiveBuilder = function (directiveName) {directive = directiveName; directiveBuffer = '<' + directiveName + ''; this. setDirectiveName = function (directiveName) {directive = directiveName; directiveBuffer = '<' + directiveName + '';} this. getDirectiveName = function () {return directive;} // name: name of the scope in VE ve, value: clone directive operation, the name of the Data Binding this. appendAttr = function (name, value) {directiveBuffer + = name + '= \ ''+ value +' \''; return this;} this. build = function (compile, scope) {return compile (directiveBuffer + '/>') (scope) ;}; return DirectiveUtil ;}]);
Usage:
var dirctBuilder = new DirectiveUtil.DirectiveBuilder('tw-contact-form'); dirctBuilder.appendAttr('is-new', 'isNew') // $scope.isNew, $scope.showAddBtn, $scope.initData .appendAttr('show-add-btn', 'showAddBtn') .appendAttr('init-data', 'initData'); var li = $('<li></li>').attr('id', 'ContactList' + len); li.append(dirctBuilder.build($compile, $scope));
Note: DirectiveUtil is introduced. $ compile and $ scope are passed in when build is called.