have been able to progress with the typescript setup. However, it seems to be hitting some limits so far that I realize that typescript might not be the right fit for this project.

This commit is contained in:
Nils Norman Haukås 2015-10-19 08:47:40 +02:00
parent f034d58367
commit 8802903f0a
5 changed files with 46 additions and 66 deletions

View file

@ -32,34 +32,4 @@ $(document).ready(function () {
});
}
document.addEventListener('click', function(evt) {
if (!document.hasFocus()) {
return true;
}
processSelection();
// evt.stopPropagation();
// evt.preventDefault();
}, false);
// Find currently selected word
function processSelection () {
var focused = document.activeElement;
var selectedText;
if (focused) {
try {
selectedText = focused.value.substring(
focused.selectionStart, focused.selectionEnd);
} catch (err) {
}
}
if (selectedText == undefined) {
var sel = window.getSelection();
var selectedText = sel.toString();
}
if (selectedText) {
currentlySelectedWord = selectedText;
displaySelectedWord(currentlySelectedWord);
getSensesFromServer(currentlySelectedWord);
}
}
});

View file

@ -7,8 +7,8 @@ import DataService = require('./data/data.service');
import SelectedWordService = require('./selectedWord/selectedWord.service');
angular.module('tagIt', [])
.factory('DataService', DataService)
.factory('SelectedWordService', SelectedWordService)
.service('DataService', DataService)
.service('SelectedWordService', SelectedWordService)
.controller('MenuCtrl', MenuCtrl);
function initAngular () {
@ -19,7 +19,8 @@ function initAngular () {
document.getElementById("tagit-menu"),
['tagIt']
);
});
});
}
initAngular();
initAngular();

View file

@ -10,11 +10,16 @@ class MenuCtrl {
testWord = "It's working"
selectedWord = "No word yet"
static $inject = ["$scope", "$log", "SelectedWordService"]
static $inject = ["$scope", "$log", "SelectedWordService", "DataService"]
constructor($scope: any, $log: angular.ILogService, SelectedWordService: any) {
constructor($scope: any, $log: angular.ILogService,
SelectedWordService: any, DataService : any) {
$scope.vm = this;
SelectedWordService.init();
SelectedWordService.controllerToNotify = this.onWordSelected;
}
onWordSelected (newWord : string) {
this.selectedWord = newWord;
}
remove() {

View file

@ -8,42 +8,48 @@ class SelectedWordService {
currentlySelectedWord: string
$log : ng.ILogService
controllerToNotify : (selectedWord : string) => void;
static $inject = ["$log"];
constructor($log: ng.ILogService) {
this.$log = $log;
this.init();
}
processSelection () {
// var focused : any = document.activeElement;
// var selectedText : string;
// if (focused) {
// try {
// selectedText = focused.value.substring(
// focused.selectionStart, focused.selectionEnd);
// } catch (err) {
// }
// }
// if (selectedText == undefined) {
// var sel = window.getSelection();
// var selectedText = sel.toString();
// }
// if (selectedText) {
// this.currentlySelectedWord = selectedText;
// this.$log.debug('text that was selected: ' + selectedText);
// }
var focused : any = document.activeElement;
var selectedText : string;
if (focused) {
try {
selectedText = focused.value.substring(
focused.selectionStart, focused.selectionEnd);
} catch (err) {
}
}
if (selectedText == undefined) {
var sel = window.getSelection();
var selectedText = sel.toString();
}
if (selectedText) {
this.currentlySelectedWord = selectedText;
this.$log.debug('text that was selected: ' + selectedText);
if(this.controllerToNotify) {
this.controllerToNotify(selectedText);
}
}
}
init () {
// document.addEventListener('click', function(evt) {
// if (!document.hasFocus()) {
// return true;
// }
// this.processSelection();
// // clicks should propagate upwards to other things
// // evt.stopPropagation();
// // evt.preventDefault();
// }, false);
var that = this;
document.addEventListener('click', function (evt) {
if (!document.hasFocus()) {
return true;
}
that.processSelection();
// clicks should propagate upwards to other things
// evt.stopPropagation();
// evt.preventDefault();
}, false);
}
}

View file

@ -3,7 +3,5 @@
"module": "commonjs",
"noImplicitAny": true
},
"files": [
"src/index.ts"
]
"files": []
}