AngularJS Service failing to appear on screen

I am trying to access my Github information using Github's API. I can see the correct information when I log my http request, but for some reason it is not showing up on the page. There are no errors being thrown, but the requested data is not displaying (The partial is showing up, but not the data that is being requested).

Service:

myApp.factory('githubApi', ['$http',
    function($http) {
        //Setting up a promise to either return or not return a user's github information.
        return {
            async: function() {
                return $http.get('https://api.github.com/users/joshspears3');
            }
        }
    }
]);

Controller:

myApp.controller('githubCtrl', [ 'githubApi', '$scope',
    function(githubApi, $scope){
        $scope.data = githubApi.async();
    }
]);

Directive:

myApp.directive('githubRequest', [
    function() {
        return {
            scope: {},
            restrict: 'E',
            controller: 'githubCtrl',
            templateUrl: 'public/views/partials/github-request.html'
        }
    }
]);

github-request.html (partial):

<p class="component-example-header">Creating a service. Grabbing information based on the github API.</p>
<div>
    Making a $http request to grab my personal Github information.
    <p>Avatar:</p>
    <img width="20%"src="{{data.avatar_url}}" alt="" />
    <p>Username: {{data.login}}</p>
    <p>Followers: {{data.followers}}, Following: {{data.following}}</p>
</div>

Index.html:

  <div>
     <global-header></global-header>
     <div ui-view></div>
     <github-request></github-request>
  </div>

Answer №1

It appears you have not utilized a promise in your code. To implement one, modify your async function to:

return $http.get('https://api.github.com/users/joshspears3').success(function(response) {
    return response.data
});

Also, adjust your controller to:

function(githubApi, $scope){
    githubApi.async().then(function(data) {
        $scope.data = data;
    });
}

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

How can you efficiently access the 'app' object within a distinct route file?

When using Express 4, the default behavior is to load routes from a separate file like so: app.use('/', routes); This would load routes/index.js. I am working with a third-party library that directly interacts with the app object itself. What& ...

How can I send the innerText of an AngularJS directive to a template?

How can I pass the innerText of an AngularJS directive to a template? Screenshot: https://i.sstatic.net/v32xH.jpg Here is the HTML code: <div class="carBox"> <img ng-src="img/{{Id}}.png" width="128" height="128" /> <br /> <br ...

The graph visualization fails to update properly even after attempting to redraw it

A new feature has been added to the website that allows users to zoom into specific areas of graphs created using Flot objects. An array containing all the Flot objects on the screen has been implemented, and the selection plugin is being used for this pur ...

Pattern matching using regex can also be used to restrict the number of characters allowed

Having some trouble with regex to match a specific pattern and also limit the number of characters: Let's say I have allowed number prefixes: 2, 31, 32, 35, 37, 38, 39, 41, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60 I only want numb ...

How can I detect click events on SVG path element using Angular?

Is it possible to detect click events on SVG elements such as path or g using Angular? To see an example of this, check out this demo. Right now, if a (click) event binding is added to the svg elements, the click() event handler will trigger. However, how ...

What is the method for retrieving an image source using JavaScript?

I'm trying to retrieve the image source from my utils file and bind it to an img tag in my About.vue JS file, but I'm facing issues with the implementation. The first file is About.vue, and the second one is my utils file. <template> < ...

Execute a script once the AngularJS view has finished loading

Just starting out with AngularJS and I've encountered an issue; I'm populating part of my view with HTML from a variable in my controller: <div ng-bind-html="deliberatelyTrustDangerousSnippet()"></div> Everything works as expected ...

Is there a method to prevent the repetition of this loop?

I have a question regarding my React app development. I am currently using useEffect to loop through six items every time, even when only one item has changed. How can I optimize this so that only the variable that was changed in the reducer function is ...

What is the best way to send the selected option from a dropdown to a button click function within the controller?

I need to pass the selected value from a user's country selection dropdown to the ng-click="saveChanges()" function on the submit button. Is there a correct method for achieving this? I want to be able to access the user's selection from the dro ...

Having trouble identifying the issue with the dependent select drop down in my Active Admin setup (Rails 3.2, Active Admin 1.0)

I am currently working on developing a Ruby on Rails application that involves three models: Games that can be categorized into a Sector (referred to as GameSector) and a subsector (known as GameSubsector) A sector consists of multiple subsectors. A Subs ...

What could be the reason behind encountering an NaN error while using these particular functions?

I recently delved into the world of JavaScript, starting my learning journey about two months ago. While going through a few tutorials, I stumbled upon an intriguing project idea. However, I've hit a roadblock that's impeding my progress. Every t ...

The basic node API request is not showing any information

There is a request in my server.js file var Post = require('./../models/post'); //GET ALL POSTS app.get('/api/posts', function (req, res) { Post.getPosts(function (err, posts) { if(err) { throw err; } ...

Top method for developing a Wizard element within React

As I delved into learning React, my focus shifted towards creating a Wizard component. My initial vision was to use it in this way: <Wizard isVisible={this.state.isWizardVisible}> <Page1 /> <Page2 /> </Wizard> However, I e ...

What is the best way to clear the selected option in a dropdown menu when choosing a new field element?

html <div class="row-fluid together"> <div class="span3"> <p> <label for="typeofmailerradio1" class="radio"><input type="radio" id="typeofmailerradio1" name="typeofmailerradio" value="Postcards" />Postcards& ...

Guidance that utilizes the scope of a specific instance

I have successfully created a d3.js directive, but I am facing an issue when resizing the window. The values of my first directive seem to be taking on the values of my second directive. How can I separate the two in order to resize them correctly? (both ...

Encountered an error when creating my own AngularJS module: Unable to instantiate

Attempting to dive into TypeScript and AngularJS, I encountered a perplexing error after following a tutorial for just a few lines. It appears that there may be an issue with my mydModule? angular.js:68 Uncaught Error: [$injector:modulerr] Failed to inst ...

Obtaining a Slug in the Server-Side Layout of a Next.js Component

I am facing an issue with passing a slug to a server-side function in my Next.js layout component. The problem arises when the slug is returning as undefined, and I am struggling to correctly access and utilize the slug on the server side within the layout ...

What is the process for retrieving a JavaScript script generated by PHP through AJAX and executing the script successfully?

Utilizing the Google Maps API, I am in the process of creating my very own world. However, I have encountered a problem where the large number of markers/locations is causing the page to become unresponsive. I suspect that the solution lies in calling onl ...

I am currently working with a for loop within an object in JavaScript, but there seems to be a problem with one

Here is a function called validator: import validator from "validator"; import isEmpty from "is-empty"; export default function validate(data) { const errors = {}; for (const property in data) { console.log(property); //< ...

What could be causing React to not re-render the page when the button is clicked?

function MyApp() { const [usersData, setUsersData] = useState([]) useAsyncEffect(async () => { const response = await fetch('https://jsonplaceholder.typicode.com/users') const users = await response.json() setU ...