I think it would be great Angular's future module system (ES6) was in 1.x. 
However, I don't think this ticket is the place to discuss it. This ticket 
is a tiny step that has a big win.

Requiring ES6 in Angular 1.x and ripping out the existing module system is 
a big, invasive amount of work that needs a long architectural discussion. 
Plus, it would make all Angular 1.x projects do some notable rewriting and 
adopt a new toolchain (transpiling.) If there's an Angular 1.5, or 1.6, or 
something after the upcoming 1.4, perhaps it could be discussed there.

My two cents.

--Paul

On Tuesday, January 20, 2015 at 4:10:25 PM UTC-5, Francisco Guijarro wrote:
>
> I came here from this GitHub issue: 
> https://github.com/angular/angular.js/issues/10805#event-221306745
>
> I believe that the proposed solutions are just superfluous patches to what 
> the real problem is:
> - Angular already comes with a module system, but it is not standard 
> compliant, and it is just a sub set of the other module systems out there 
> (Es6, Common.js, AMD)
>
> I would like to get rid of Angular's module system in favor of more 
> feature full Module systems.
> I believe that Angular 2.0 brings new ideas to the table, you can check 
> this Video by Vojta Jina: https://www.youtube.com/watch?v=_OGGsf1ZXMs
>
> What are the chances to implement this into Angular 1.x? I believe that is 
> not but totally feasible.
>
> Here is the proposed syntax for Angular 2.0 Dependency Injection with Es6 
> modules (based on the video by Votja):
>
> Import {Grinder} from './grinder';
> // Manually annotate the function
> coffeeMaker.annotations = [
>    new Inject(Grinder)];
>
> function coffeeMaker(grinder) {...}
> export coffeeMaker;
>
>
>
> This of course transpiles into Common.js and AMD.
> And this is how I imagine using it with Angular 1.x today (and Common.js)
>
>
> var Grinder = require('./grinder');
> // Manually annotate the function
> coffeeMaker.$inject = [Grinder];// The below is necessary in my mind to make 
> it easier to hook to the standard component definition
> coffeemaker.$type = 'factory';
>
> function coffeeMaker(grinder) {...}
>
> module.exports.coffeeMaker = coffeeMaker;
>
>
>
> And maybe basing on some interface like this we can hook up to Angular's 
> DI.
> I will try to make some experiments with this.
> What do you guys think?
>
> Thanks!
> Fran
>
>
>
> El jueves, 15 de enero de 2015, 12:51:13 (UTC-3), Marcus Nielsen escribió:
>>
>> I would expect var angular = require('angular') to work. And then module 
>>> dependencies via var dependecies = [require('foo').name, 
>>> require('bar').name].
>>>
>>
>> Then only thing that is bothering me right now with browserify and 
>> angular is the clash between DI and CommonJS.
>>
>> Personally I put my DDO inside my index.js and there set up my 
>> angular-specific code and names. 
>> // Inside a folder named mn-menu
>>
>> var moduleName = 'mnMenu'
>> var controllerName = moduleName + 'Controller'
>> var dependencies = []
>> angular.module(moduleName, dependencies).directive(moduleName, function 
>> (){
>>   return {
>>     template: require('./template.html'),
>>     controller: controllerName
>>   }
>> })
>>   .controller(controllerName, require('./controller'))
>>
>> If I do a folder for mn-footer, then I just copy that and replace the 
>> folder-name and the variable moduleName to 'mnFooter'. Everything else 
>> remains the same.
>>
>> That's how I use it right now. 
>> Angular becomes the boilerplate code and my controller/factories become 
>> normal functions with DI that are exported via CommonJS.
>>
>>>  
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to