I am already doing that. We are focusing too much on the factory method. My 
question is regarding the $timeout method

'use strict';

mintApp.factory('DataFactory', ["$http", function($http) {

    var factory = {};

    factory.getUserData = function() {
        return 
$http.get('../MINT/scripts/php/get_user_data').then(function(results) {
            if (results.status === 200) {
                return results.data.User;
            } else {
                return {
                    status : results.status,
                    error  : 'Failed to get User Data'
                }
            }
        });
    };

    return factory;
}]);

and then in the controller I use it

 DataFactory.getUserData().then(function(results) {
     $scope.account = results;
 });



On Thursday, May 1, 2014 7:31:20 PM UTC-4, Jeff Hubbard wrote:
>
> It sounds to me like DataFactory should return a promise instead.
>
> On Thursday, May 1, 2014 1:13:44 PM UTC-7, Billy Figueroa wrote:
>>
>> I do have a service. Its called DataFactory.
>>
>> I just found that you can achieve the same results with out using a 
>> factory and calling the factory in each controller.
>>
>> The way I have my app setup I am getting the current users data in a 
>> MainController which I set on the body tag so EVERY single page and 
>> controller instantiated with that route will have MainController as a 
>> parent.
>>
>> I could then load the data using $timeout OR as you mentioned just use a 
>> service. Using a service means I call my DataFactory in every single 
>> controller that I need that data which although it seems like thats the 
>> point of services and dependency injection, it causes multiple calls of the 
>> same code. Whereas with a simple timeout I can just grab the data that is 
>> already there in the parent controller.
>>
>> I am using the service/ factory method for sure, but I just wanted to 
>> know if its bad practice to do it the other way
>>
>> On Thursday, May 1, 2014 4:06:43 PM UTC-4, Chris Rhoden wrote:
>>>
>>> The 0 isn't necessary, and using $timeout to defer some action isn't an 
>>> antipattern, but the rest of your message concerns me. If you're 
>>> communicating between controllers using $scope, you're doing it wrong. Make 
>>> a service if two controllers need to share state.
>>>
>>>
>>> On Thu, May 1, 2014 at 4:04 PM, Billy Figueroa <[email protected]>wrote:
>>>
>>>> Is is bad practice to use $timeout with a time of 0?
>>>>
>>>> i.e. 
>>>> $timeout(function() {
>>>>    // some action here
>>>> }, 0);
>>>>
>>>> I find that sometimes data doesn't load in a child controller and I may 
>>>> want to use this. I have avoided using it, but what are peoples experience 
>>>> with this?
>>>>
>>>>
>>>>  -- 
>>>> 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.
>>>>
>>>
>>>
>>>
>>> -- 
>>> chrisrhoden 
>>>
>>

-- 
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