JSFiddle - React, Tailwind, and code Playground
by cCarlson
JavaScript
/**
* ngLazyStyle := module
* TODO: move this to new file, add dependency to requirejs.config shim
*/
(function(angular){
var ngLazyStyle = angular.module('ngLazyStyle', []);
ngLazyStyle.factory('$lazyCSS', function LazyCSS(){
return function RequireCSS(url){
var link = null;
if(!RequireCSS[url] && !document.querySelector('link[href*="' + url + '"]')){
link = document.createElement('link');
link.type = 'text/css';
link.rel = 'stylesheet';
link.href = url;
RequireCSS[url] = link;
document.getElementsByTagName('head')[0].appendChild(link);
}
return RequireCSS;
}
});
})(angular);
/**
* TODO: !!!!!!!!!! DOES THIS WORK WITH MULTIPLE INSTANCES ??????????? :: NO! -- Links are broken
* * MAKE this.presolve A new Presolve(), OR, WRAP ENTIRE MODULE IN A FUNCTION.
* * OR... WAS IT JUST THE navControls CAUSING THE ERROR???
* * !!!! DOES Angular AUTOMATICALLY CREATE A new Instance() FOR .providers???
* TODO: $interpolate EVERYTHING!
* TODO: ADD 'resolve' PROPERTY???
* TODO: ADD 'interpolate' METHOD (does not lazyLoad)???
* * STILL USE resolve??? (think about $route.current.params)
* TODO: ADD ngPresolve.filter('titleCase', ...) ( actually, ngPresolve.filter('Title?', ...) )
*
* TODO: check for data/variable/object presence/integrity before manipulations ($interpolate, etc)
*/
(function(angular, require){
var ngPresolve = angular.module('ngPresolve', ['ngRoute', 'ngLazyStyle']);
var $injector = angular.injector(['ng'])
, $interpolate = $injector.get('$interpolate')
, $controller = $injector.get('$controller');
ngPresolve.provider('$presolve', function PresolveProvider($routeProvider, $controllerProvider, $filterProvider){
$filterProvider.register('TitleCase', function TitleCase($interpolate){
return function titleCase(exp){
var ex = exp[0].toUpperCase() + exp.slice(1);
return ex;
};
});
var thus = this;
var toTitleCase = function PRIVATE(str){
return...