Comments (5)
Agree. Did you encounter this where you could let me know a simple scenario I can add to the tests? Generally, controllers get destroyed when changing routes (which will destroy the hotkey), but if there are cases where destroying controllers happens without a route change, then this should definitely be addressed.
from angular-hotkeys.
After thinking about this more, I don't think there are many normal cases where controllers are destroyed without a route change. Really the issue is that I am using the UI Router instead of the Angular Router. I think I saw someone was working on the UI Router update to this library so I am fine waiting for that.
from angular-hotkeys.
I can think of a couple cases where a controller might be destroyed outside of a route change: ngInclude, ngIf... basically anything where the DOM node is removed. See: http://plnkr.co/edit/KytBilQzg2XxZ8ZkaSPt?p=preview
from angular-hotkeys.
The another example could be Modal windows (angular-bootstrap modal component)
var modal = $modal.open({
...
templateUrl: '/my-selection-dialog.tpl.html',
controller: FromExistentModelCtrl,
resolve: {
....
}
});
So the window is created and destroyed within same route/state, but window actions are handled by separate view controller.
Although I think that binding hotkeys in directives could be a solution for most case
from angular-hotkeys.
So from what I can tell, there's no good way for the service to be informed automatically of the controller's scope being destroyed. In order to accomplish this, I had to add an additional method which passes the controller's scope into the service, at which point, hotkeys will automatically take care of removing the bindings when the scope is destroyed. It looks like this:
angular.controller('MyCtrl', function ($scope, hotkeys) {
hotkeys.bindTo($scope)
.add({
combo: 'w',
description: 'blah blah',
callback: function() {}
})
// you can chain these methods for ease of use:
.add ({...});
});
You can check out the i32-scope-destroyed branch to see and play with it for yourselves. If anyone can think of a better way, please let me know...otherwise I'll merge this into master and call it complete.
from angular-hotkeys.
Related Issues (20)
- Translation of keys
- Programmatically open hotkeys dialog HOT 2
- Hotkey does not fire when changing routes in ngRoute HOT 1
- Can we trigger the Hotkey for particular element., HOT 1
- Improve Documentation of directive-based hotkeys HOT 1
- cheatsheet not displayed HOT 2
- Wildcard combo?
- Hotkey using only slash does not apper on the cheatsheet HOT 1
- hotkey with ctrl+alt++ is not working HOT 1
- Delete all binded hotkey HOT 1
- Compatibility AZERTY
- hotkey with mod+w closes the browser tab HOT 1
- In callback function array is not visible from scope HOT 3
- new hotkey not adding
- Is this a AMD module?
- Error: [$sce:unsafe] Attempting to use an unsafe value in a safe context when configuring templateHeader
- iframe binding issue HOT 3
- Change the cheatsheet Shift icon (up arrow) to the word SHIFT. HOT 1
- How to test ESC press in angualr unit test? HOT 2
- Hotkeys are not working on text input focus HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from angular-hotkeys.