| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | angular.module('kityminderEditor')	.directive('noteEditor', ['valueTransfer', function(valueTransfer) {		return {			restrict: 'A',			templateUrl: 'ui/directive/noteEditor/noteEditor.html',			scope: {				minder: '='			},            replace: true,			controller: function($scope) {				var minder = $scope.minder;				var isInteracting = false;				var cmEditor;				$scope.codemirrorLoaded =  function(_editor) {					cmEditor = $scope.cmEditor = _editor;					_editor.setSize('100%', '100%');				};				function updateNote() {					var enabled = $scope.noteEnabled = minder.queryCommandState('note') != -1;					var noteValue = minder.queryCommandValue('note') || '';					if (enabled) {						$scope.noteContent = noteValue;					}					isInteracting = true;					$scope.$apply();					isInteracting = false;				}				$scope.$watch('noteContent', function(content) {					var enabled = minder.queryCommandState('note') != -1;					if (content && enabled && !isInteracting) {						minder.execCommand('note', content);					}					setTimeout(function() {						cmEditor.refresh();					});				});                var noteEditorOpen = function() {                    return valueTransfer.noteEditorOpen;                };                // 监听面板状态变量的改变                $scope.$watch(noteEditorOpen, function(newVal, oldVal) {                    if (newVal) {                        setTimeout(function() {                            cmEditor.refresh();                            cmEditor.focus();                        });                    }                    $scope.noteEditorOpen = valueTransfer.noteEditorOpen;                }, true);                $scope.closeNoteEditor = function() {                    valueTransfer.noteEditorOpen = false;					editor.receiver.selectAll();                };				minder.on('interactchange', updateNote);			}		}	}]);
 |