UNPKG

landers.angular

Version:

landers.angular

45 lines (42 loc) 1.76 kB
;angular.module('Landers.angular') .directive('landersUpload', ['Flat', '$compile', 'Helpers', '$timeout', function(Flat, $compile, Helpers, $timeout) { return { restrict : 'A', scope: { 'ngModel': '=', 'onUpload': '@', 'onRemove': '@' }, template: '<textarea class="wp100 h100 mb10" style="display:none"></textarea>', link : function($scope, $ele, $attrs) { var $textarea = $ele.find('textarea'); var key = $attrs['uploadKey']; var options = Helpers.attrItemToJson($attrs, 'uploadOptions'); // 给options附上事件 angular.extend(options, { onChange: function(data){ if (angular.isString(data)) { data = angular.fromJson(data); } data = data || ''; $timeout(function(){ $scope.ngModel = data; }); }, onUpload: $scope.onUpload, onRemove: $scope.onRemove }); var upload = new Landers.upload($ele, $textarea, key, options); var destroyWatch = $scope.$watch('ngModel', function(new_value){ if (new_value === undefined) return; if (new_value) { upload.setInput(new_value); } else { upload.clearValue(); } upload.show(); destroyWatch(); }); } }; }]);