I have 2 pages (I don't use the angular
's routing
- This constraint).
In one of them I want to use the directive ui-grid
like in this demo:
var app = angular.module('myApp', ['ui.grid']);
app.controller('mainCtrl', function($scope) {
$scope.myData = [
{
"firstName": "Cox",
"lastName": "Carney",
"company": "Enormo",
"employed": true
},
{
"firstName": "Lorraine",
"lastName": "Wise",
"company": "Comveyer",
"employed": false
},
{
"firstName": "Nancy",
"lastName": "Waters",
"company": "Fuelton",
"employed": false
}
];
});
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.js"></script>
<script src="http://ui-grid.info/release/ui-grid-unstable.js"></script>
<link rel="stylesheet" href="http://ui-grid.info/release/ui-grid-unstable.css" type="text/css">
<div ng-app="myApp">
<div ng-controller="mainCtrl">
<div id="grid1" ui-grid="{ data: myData }" class="grid"></div>
</div>
</div>
My question is if there is a way to not inject the ui-grid
dependency to the app in any case but only when I need it.
Something like:
app.controller('mainCtrl', function($scope) {
app.$inject('ui-grid');
});
Update
I tried to do:
var ui_grid = $injector.get('ui-grid');
But I've got an error:
Unknown provider: ui-gridProvider <- ui-grid
http://errors.angularjs.org/1.2.26/$injector/unpr?p0=ui-gridProvider%20%3C-%20ui-grid
Core Angular API does not provide this feature. ocLazyLoad is the popular library for lazy loading of modules and components in Angular.
You can find more info on their page: https://oclazyload.readme.io
or the GitHub repository: https://github.com/ocombe/ocLazyLoad