Priyanka Sankhala
Priyanka Sankhala

Reputation: 868

Angular js Controller not working well

function studentController($scope) {
		$scope.student = {
			firstName : "Mahesh",
			lastName : "Parashar",
			fullName : function() {
				var studentObject;
				studentObject = $scope.student;
				return studentObject.firstName + " " + studentObject.lastName;
			}
		};
	}
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.15/angular.min.js"></script>
<html><title>AngularJS First Application</title>
	<body><h1>Sample Application</h1>
		<div ng-app="" ng-controller="studentController">
			<p>
				Enter your Name:<input type="text" ng-model="data">
			</p>
			<p>
				Hello <span ng-bind="data"></span>!
			</p>
		</div>

		<br />
		<table border="1px">
		<tr><th>Fisrt Name</th><th>Last Name</th><th>Full Name</th></tr>
		<tr><td>student.firstName</td><td>student.lastName</td><td>student.fullName</td></tr>

		</table>
		<script src="angular.min.js"></script>
	</body>
</html>

<script>
	
</script>

I am new in Angular js and start to make program but ng-controller not working,When I added a ng-controller="studentController" normal angular ng-bind="data" program also not working so Please anyone help me out what's wrong in it.

Thanks

Priyanka Sankhala

Upvotes: 0

Views: 84

Answers (3)

Rakesh Burbure
Rakesh Burbure

Reputation: 1045

I have tried to modify this program little bit to get it working and code is as below.

JavaScript.js

    var app = angular.module("app", [])
    .controller("studentController", studentController);

    function studentController($scope) {
    $scope.student = {
        firstName: "Mahesh",
        lastName: "Parashar",
    };
    $scope.getFullName = function () {
        var studentObject;
        studentObject = $scope.student;
        //return studentObject.firstName + " " + studentObject.lastName;
        $scope.student.fullName = studentObject.firstName + " " + studentObject.lastName;
    }
}

HtmlPage

<html>
<head>
    <title>AngularJS First Application</title>
</head>
<body>
    <h1>Sample Application</h1>
    <div ng-app="app" ng-controller="studentController">
        <p>
            Enter your Name:<input type="text" ng-model="data">
        </p>
        <p>
            Hello <span ng-bind="data"></span>!
        </p>


        <br />
        <table border="1px">
            <tr><th>Fisrt Name</th><th>Last Name</th><th>Full Name</th></tr>
            <tr><td>{{student.firstName}}</td><td>{{student.lastName}}</td><td>{{student.fullName}}</td></tr>
            <tr> <input type="button" value="Get Full Name" ng-click="getFullName()"/> </tr>
        </table>
    </div>
    <script src="../angular.js"></script> <!--This is the angularJS libyrary file-->
    <script src="JavaScript.js"></script> <!--This is your java script file-->
</body>
</html>

Please let me know if you need if it works for you or not.

Upvotes: 0

abdoutelb
abdoutelb

Reputation: 1053

you should define an app for the angular and add a controller under it

    angular.module('app', []).controller('studentController', function($scope) {
  $scope.student = {
        firstName : "Mahesh",
        lastName : "Parashar",
        fullName : function() {
            var studentObject;
            studentObject = $scope.student;
            return studentObject.firstName + " " + studentObject.lastName;
        }
    };
});

Then add the app name in ng-app

Upvotes: 0

Sajeetharan
Sajeetharan

Reputation: 222582

There are many issues with your code!

(i) Your angular version and the way you've defined the controller. You should have a module name declared as follows,

ngular.module('myApp',[])

(ii) Use the expression {} with the model name in your HTML, example,

{{student.firstName}}

(iii) fullName is a function so you need to call like,

<td>{{student.fullName()}}</td>

DEMO

angular.module('myApp',[]).controller('studentController', function($scope){
  $scope.student = {
			firstName : "Mahesh",
			lastName : "Parashar",
			fullName : function() {
				var studentObject;
				studentObject = $scope.student;
				return studentObject.firstName + " " + studentObject.lastName;
			}
		};
          
 });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.22/angular.min.js"></script>
<title>AngularJS First Application</title>
<body>
    <h1>Sample Application</h1>
    <div ng-app="myApp" ng-controller="studentController">
        <p>
            Enter your Name:<input type="text" ng-model="data">
        </p>
        <p>
            Hello <span ng-bind="data"></span>!
        </p>
        <br />
        <table border="1px">
            <tr>
                <th>Fisrt Name</th>
                <th>Last Name</th>
                <th>Full Name</th>
            </tr>
            <tr>
                <td>{{student.firstName}}</td>
                <td>{{student.lastName}}</td>
                <td>{{student.fullName()}}</td>
            </tr>
        </table>
    </div>
</body>

Upvotes: 1

Related Questions