Commit 7cb5234b authored by Arthur Verschaeve's avatar Arthur Verschaeve

Merge pull request #1262 from samccone/sjs/fix-angular-leaks

Fix angular directive bugs
parents ae1c00ca d1dd7e35
...@@ -49,7 +49,7 @@ dedicated version of Chromium with an embedded Dart VM. ...@@ -49,7 +49,7 @@ dedicated version of Chromium with an embedded Dart VM.
## Compiling ## Compiling
``` ```
dart2js src/main.dart -o dist/main.js dart2js web/main.dart -o web/main.js
``` ```
The dart2js compilator can be found in the SDK. The dart2js compilator can be found in the SDK.
......
...@@ -13,5 +13,9 @@ todomvc.directive('todoEscape', function () { ...@@ -13,5 +13,9 @@ todomvc.directive('todoEscape', function () {
scope.$apply(attrs.todoEscape); scope.$apply(attrs.todoEscape);
} }
}); });
scope.$on('$destroy', function () {
elem.unbind('keydown');
});
}; };
}); });
...@@ -16,5 +16,9 @@ angular.module('todomvc') ...@@ -16,5 +16,9 @@ angular.module('todomvc')
scope.$apply(attrs.todoEscape); scope.$apply(attrs.todoEscape);
} }
}); });
scope.$on('$destroy', function () {
elem.unbind('keydown');
});
}; };
}); });
...@@ -11,6 +11,10 @@ define(['app'], function (app) { ...@@ -11,6 +11,10 @@ define(['app'], function (app) {
scope.$apply(attrs.todoEscape); scope.$apply(attrs.todoEscape);
} }
}); });
scope.$on('$destroy', function () {
elem.unbind('keydown');
});
}; };
}); });
}); });
...@@ -9,5 +9,9 @@ todomvc.directive('todoBlur', function () { ...@@ -9,5 +9,9 @@ todomvc.directive('todoBlur', function () {
elem.bind('blur', function () { elem.bind('blur', function () {
scope.$apply(attrs.todoBlur); scope.$apply(attrs.todoBlur);
}); });
scope.$on('$destroy', function () {
elem.unbind('blur');
});
}; };
}); });
...@@ -13,5 +13,9 @@ todomvc.directive('todoBlur', function () { ...@@ -13,5 +13,9 @@ todomvc.directive('todoBlur', function () {
scope.$apply(attrs.todoEscape); scope.$apply(attrs.todoEscape);
} }
}); });
scope.$on('$destroy', function () {
elem.unbind('keydown');
});
}; };
}); });
...@@ -44,9 +44,8 @@ var todos; ...@@ -44,9 +44,8 @@ var todos;
function todoBlur() { function todoBlur() {
return { return {
link: function ($scope, element, attributes) { link: function ($scope, element, attributes) {
element.bind('blur', function () { element.bind('blur', function () { $scope.$apply(attributes.todoBlur); });
$scope.$apply(attributes.todoBlur); $scope.$on('$destroy', function () { element.unbind('blur'); });
});
} }
}; };
} }
...@@ -54,7 +53,7 @@ var todos; ...@@ -54,7 +53,7 @@ var todos;
})(todos || (todos = {})); })(todos || (todos = {}));
/// <reference path='../_all.ts' /> /// <reference path='../_all.ts' />
var todos; var todos;
(function (_todos) { (function (todos_1) {
'use strict'; 'use strict';
/** /**
* Services that persists and retrieves TODOs from localStorage. * Services that persists and retrieves TODOs from localStorage.
...@@ -71,7 +70,7 @@ var todos; ...@@ -71,7 +70,7 @@ var todos;
}; };
return TodoStorage; return TodoStorage;
})(); })();
_todos.TodoStorage = TodoStorage; todos_1.TodoStorage = TodoStorage;
})(todos || (todos = {})); })(todos || (todos = {}));
/// <reference path='../_all.ts' /> /// <reference path='../_all.ts' />
var todos; var todos;
...@@ -106,7 +105,9 @@ var todos; ...@@ -106,7 +105,9 @@ var todos;
$scope.location = $location; $scope.location = $location;
} }
TodoCtrl.prototype.onPath = function (path) { TodoCtrl.prototype.onPath = function (path) {
this.$scope.statusFilter = (path === '/active') ? { completed: false } : (path === '/completed') ? { completed: true } : null; this.$scope.statusFilter = (path === '/active') ?
{ completed: false } : (path === '/completed') ?
{ completed: true } : null;
}; };
TodoCtrl.prototype.onTodos = function () { TodoCtrl.prototype.onTodos = function () {
this.$scope.remainingCount = this.filterFilter(this.todos, { completed: false }).length; this.$scope.remainingCount = this.filterFilter(this.todos, { completed: false }).length;
...@@ -139,9 +140,7 @@ var todos; ...@@ -139,9 +140,7 @@ var todos;
this.$scope.todos = this.todos = this.todos.filter(function (todoItem) { return !todoItem.completed; }); this.$scope.todos = this.todos = this.todos.filter(function (todoItem) { return !todoItem.completed; });
}; };
TodoCtrl.prototype.markAll = function (completed) { TodoCtrl.prototype.markAll = function (completed) {
this.todos.forEach(function (todoItem) { this.todos.forEach(function (todoItem) { todoItem.completed = completed; });
todoItem.completed = completed;
});
}; };
// $inject annotation. // $inject annotation.
// It provides $injector with information about dependencies to be injected into constructor // It provides $injector with information about dependencies to be injected into constructor
...@@ -166,6 +165,20 @@ var todos; ...@@ -166,6 +165,20 @@ var todos;
var todos; var todos;
(function (todos) { (function (todos) {
'use strict'; 'use strict';
var todomvc = angular.module('todomvc', []).controller('todoCtrl', todos.TodoCtrl).directive('todoBlur', todos.todoBlur).directive('todoFocus', todos.todoFocus).service('todoStorage', todos.TodoStorage); var todomvc = angular.module('todomvc', [])
.controller('todoCtrl', todos.TodoCtrl)
.directive('todoBlur', todos.todoBlur)
.directive('todoFocus', todos.todoFocus)
.service('todoStorage', todos.TodoStorage);
})(todos || (todos = {})); })(todos || (todos = {}));
/// <reference path='libs/jquery/jquery.d.ts' />
/// <reference path='libs/angular/angular.d.ts' />
/// <reference path='models/TodoItem.ts' />
/// <reference path='interfaces/ITodoScope.ts' />
/// <reference path='interfaces/ITodoStorage.ts' />
/// <reference path='directives/TodoFocus.ts' />
/// <reference path='directives/TodoBlur.ts' />
/// <reference path='services/TodoStorage.ts' />
/// <reference path='controllers/TodoCtrl.ts' />
/// <reference path='Application.ts' />
//# sourceMappingURL=Application.js.map //# sourceMappingURL=Application.js.map
\ No newline at end of file
{"version":3,"file":"Application.js","sourceRoot":"","sources":["models/TodoItem.ts","interfaces/ITodoScope.ts","interfaces/ITodoStorage.ts","directives/TodoFocus.ts","directives/TodoBlur.ts","services/TodoStorage.ts","controllers/TodoCtrl.ts","Application.ts","_all.ts"],"names":["todos","todos.TodoItem","todos.TodoItem.constructor","todos.todoFocus","todos.todoBlur","todos.TodoStorage","todos.TodoStorage.constructor","todos.TodoStorage.get","todos.TodoStorage.put","todos.TodoCtrl","todos.TodoCtrl.constructor","todos.TodoCtrl.onPath","todos.TodoCtrl.onTodos","todos.TodoCtrl.addTodo","todos.TodoCtrl.editTodo","todos.TodoCtrl.doneEditing","todos.TodoCtrl.removeTodo","todos.TodoCtrl.clearDoneTodos","todos.TodoCtrl.markAll"],"mappings":"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"} {"version":3,"file":"Application.js","sourceRoot":"","sources":["models/TodoItem.ts","interfaces/ITodoScope.ts","interfaces/ITodoStorage.ts","directives/TodoFocus.ts","directives/TodoBlur.ts","services/TodoStorage.ts","controllers/TodoCtrl.ts","Application.ts","_all.ts"],"names":["todos","todos.TodoItem","todos.TodoItem.constructor","todos.todoFocus","todos.todoBlur","todos.TodoStorage","todos.TodoStorage.constructor","todos.TodoStorage.get","todos.TodoStorage.put","todos.TodoCtrl","todos.TodoCtrl.constructor","todos.TodoCtrl.onPath","todos.TodoCtrl.onTodos","todos.TodoCtrl.addTodo","todos.TodoCtrl.editTodo","todos.TodoCtrl.doneEditing","todos.TodoCtrl.removeTodo","todos.TodoCtrl.clearDoneTodos","todos.TodoCtrl.markAll"],"mappings":"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"}
\ No newline at end of file \ No newline at end of file
...@@ -10,7 +10,8 @@ module todos { ...@@ -10,7 +10,8 @@ module todos {
return { return {
link: ($scope: ng.IScope, element: JQuery, attributes: any) => { link: ($scope: ng.IScope, element: JQuery, attributes: any) => {
element.bind('blur', () => { $scope.$apply(attributes.todoBlur); }); element.bind('blur', () => { $scope.$apply(attributes.todoBlur); });
$scope.$on('$destroy', () => { element.unbind('blur'); });
} }
}; };
} }
} }
\ No newline at end of file
{ {
"private": true, "private": true,
"scripts": {
"compile": "tsc --sourcemap --out js/Application.js js/_all.ts"
},
"dependencies": { "dependencies": {
"angular": "^1.3.13", "angular": "^1.3.13",
"todomvc-app-css": "^1.0.0", "todomvc-app-css": "^1.0.0",
"todomvc-common": "^1.0.1" "todomvc-common": "^1.0.1"
},
"devDependencies": {
"typescript": "^1.5.0-alpha"
} }
} }
...@@ -75,11 +75,11 @@ It's definitely possible to convert the vanillajs todo app into TypeScript, but ...@@ -75,11 +75,11 @@ It's definitely possible to convert the vanillajs todo app into TypeScript, but
A standalone TypeScript compiler is available on NPM. A standalone TypeScript compiler is available on NPM.
npm install -g typescript npm install
To compile the TypeScript in this project: To compile the TypeScript in this project:
# from labs/architecture-examples/typescript-angular # from labs/architecture-examples/typescript-angular
tsc --sourcemap --out js/Application.js js/_all.ts run `npm run compile`
Or use Visual Studio with the TypeScript plugin. Or use Visual Studio with the TypeScript plugin.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment