0
votes

I am new to angular js and am creating a simple app. However, when I try to run it, the binding doesn't work. I also get a console error saying Error: [ng:areq] Argument 'meetupsController' is not a function, got undefined. Here is my code:

var app = angular.module('meetupApp', ['ngResource']);

This is in my meetups-controller.js :

app.controller('meetupsController', ['$scope', '$resource', function($scope, $resource){

var Meetup = $resource('/api/meetups');

$scope.meetups = [
    { name: "MEAN SF Developers" },
    {name: "Some other meetups" }
]

$scope.createMeetup = function(){
    var meetup = new Meetup();
    meetup.name = $scope.meetupName;
    meetup.$save();
}
}]);

This is my index.html :

<!DOCTYPE html>
<html ng-app="meetupApp">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
    <!-Meetups View->
    <div ng-controller="meetupsController">
        <h1>There are {{meetups.length}} meetups</h1>
        <ul>
            <li ng-repeat="meetup in meetups">
                {{meetup.name}}
            </li>
        </ul>
        <form ng-submit="createMeetup()">
            <input type="text" placeholder="Meetup name" ng-model="meetupName"></input>
            <button type="submit">Add</button>
        </form>
    </div>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.js"></script>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-resource.js"></script>

    <script type="text/javascript" src="/js/app.js"></script>
    <script type="text/javascript" src"/js/controllers/meetups-controller"></script>
</body>

Thanks a lot in advance for your help!

1
.js extension missing while including meetups-controller JS file. - Sameer K

1 Answers

1
votes

Your controller didn't load properly because you are missing .js in script .

Convert this

<script type="text/javascript" src"/js/controllers/meetups-controller"></script>

to this

<script type="text/javascript" src"/js/controllers/meetups-controller.js"></script>