ZEE
ZEE

Reputation: 5849

still getting Controller not a function, got undefined, while I'm not defining controller globelly

Still getting the same ERROR Argument 'AveragesCtrl' is not a function, got undefined I've tried all the solutions provided by similar question on SO but with no luck , any idea of what I'm doing wrong ?

<div >

    <div ng-controller="AveragesCtrl">

    <table>
      <tr ng-repeat="actor in avengers.cast">
        <td>{{actor.name}}</td>
        <td>{{actor.character}}</td>
      </tr>
    </table>

  </div>

  </div>

JS

var myApp  = angular.module("myApp", []);

    myApp.factory('Averages', function () {

        var Avengers = {};
        Avengers.cast = [
          {
            name: "Robert Downey Jr.",
            character: "Tony Stark / Iron Man"
          },
          {
            name: "Chris Evans",
            character: "Steve Rogers / Captain America"
          },
          {
            name: "Mark Ruffalo",
            character: "Bruce Banner / The Hulk"
          },
          {
            name: "Chris Hemsworth",
            character: "Thor"
          },
          {
            name: "Scarlett Johansson",
            character: "Natasha Romanoff / Black Widow"
          },
          {
            name: "Jeremy Renner",
            character: "Clint Barton / Hawkeye"
          },
          {
            name: "Tom Hiddleston",
            character: "Loki"
          },
          {
            name: "Clark Gregg",
            character: "Agent Phil Coulson"
          },
          {
            name: "Cobie Smulders",
            character: "Agent Maria Hill"
          },
          {
            name: "Stellan Skarsgard",
            character: "Selvig"
          },
          {
            name: "Samuel L. Jackson",
            character: "Nick Fury"
          },
          {
            name: "Gwyneth Paltrow",
            character: "Pepper Potts"
          },
          {
            name: "Paul Bettany",
            character: "Jarvis (voice)"
          },
          {
            name: "Alexis Denisof",
            character: "The Other"
          },
          {
            name: "Tina Benko",
            character: "NASA Scientist"
          }
        ];
        return Avengers;
    });



    myApp.controller("AvengersCtrl", function AvengersCtrl(Avengers) {
      var avengersCtrl = this;
        avengersCtrl.avengers = Avengers;
    }); 

Upvotes: 3

Views: 76

Answers (1)

Anik Islam Abhi
Anik Islam Abhi

Reputation: 25352

There are no controller name AveragesCtrl

Your declared a controller name AvengersCtrl

Convert this

<div ng-controller="AveragesCtrl">

to

<div ng-controller="AvengersCtrl">

Upvotes: 2

Related Questions