Hi Greg,
First of all, read trough the recommend style-guide
<https://github.com/johnpapa/angularjs-styleguide>. It will make quite a
few things more clear, and it will also explain the why's. You don't have
to follow the guide verbatim, but it will get you on the right track.
> 1. what is the right/better approach
>
controllerAs is the "right" approach
> 2. Is there another way to inject using controllerAs
>
Yes, but stop doing it by hand, use ng-annotate, there are vesrions for
both grunt and gulp. (You need a build tool anyway for a larger build!)
> 3. Is there a performance difference and a good way to test this?
>
No, however, in building a larger system, the controllerAs would probably
be faster, as its inheritance chain is way shorter then the $scope chain.
>
> angular.module('sdt.settingsctrl', [])
> .controller('SettingsCtrl', SettingsCtrl);
>
> SettingsCtrl.$inject= ['$log', 'ModalService', 'SettingsModel'];
>
> function SettingsCtrl($log, ModalService, SettingsModel){
> angular.extend(this, {
> data: SettingsModel.getData(),
> settings: SettingsModel.settings(),
> open: function() {
> var items = [{item: 'item1'}, {item: 'item2'}, {item: 'item3'}];
> var modalOptions = {
> closeButtonText: 'Cancel',
> actionButtonText: 'OK',
> headerText: 'Adjust your settings',
> bodyText: items,
> result: this.callBack(),
>
> //optional - if you use this option feel free to
> //add more properties to work with your custom template
> template: 'partials/modals/settings.html'
> }
>
>
> ModalService.showModal({}, modalOptions).then(function (result) {
> $log.log(result);
> })
> },
> callBack: function() {
> return SettingsModel.settings();
> }
> })
>
> };
>
>
>
You really should look over the styleguide, you are making it way more
complex then needed!
Regards
Sander
--
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.