I am trying to use a tooltip plugin called tipso. And I am using angular along with browserify as my dependency manager.
I have everything working out for me except for this plugin. Every little thing is little harder in browserify but this one seems to be turning into a nightmare.
I have followed the documentation of tipso which is pretty simple. But when I run the app, I keep getting an error message stating that Uncaught TypeError: $(...).tipso is not a function in the chrome console.
This is my broserify-shim config
"browserify-shim": {
"jquery": "$",
"bootstrap": {
"depends": [
"jquery"
]
},
"tipso": {
"depends": [
"bootstrap"
]
}
}
I have required tipso
var tipso = require('tipso');
This is how I have initialized tipso
//runs when DOM is completely loaded
angular.element(document).ready(function ($http, $rootScope) {
$('.tipso').tipso();
});
Any suggestion will be appreciated.
I finally figured it out, I hope this helps someone.
The trick is to expose jQuery in the global scope (I know I am not supposed to do this and the alternative for this is to expose it wherever I want the plugin to work).
Once that is done, we'll make an Angular directive
Use this directive to use apply the jQuery plugin's properties on an element in html
Depending on the jQuery plugin and it;s funtionality decide on the directive type (Element, Attribute, Comment etc).