Hi All,
I am trying SPA in MVC  with angular for simple CRUD operation.My Index 
view  has two links which redirect to child view 

@{

    ViewBag.Title = "Index";

    Layout = "~/Views/Shared/_Layout.cshtml";

}

 

 

<!DOCTYPE html>

<html ng-app="ApplicationModule">

<head>

    <script 
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js";></script>

    <script 
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-route.js";></script>

    <script src="~/MyScripts/DisplayAllEmployeesController.js"></script>

    <script src="~/MyScripts/CreateEmployeeController.js"></script>

    <script src="~/MyScripts/Module.js"></script>

    <script src="~/MyScripts/Service.js"></script>

</head>

<body>

  

    <h2>Index</h2>

               <div>

                    <div>

                        <table>

                            <tr>

                                <td><a href="displayemployees"> View 
Employee </a></td>

                                <td>|</td>

                                <td><a href="createemployee"> Add Employee 
</a></td>

                            </tr>

                        </table>

 

                    </div>

                    <div>

                        <div ng-view></div>

                    </div>

                </div>

         

</body>

 

</html>

 

Modul.js contains code for redirecting to child view. Here EmployeeInfo is 
controller in which all the action methods are 

given

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

    app.factory("ShareData", function () {

        return { value: 0 }

    });

 

    //Defining Routing

    app.config(['$routeProvider', '$locationProvider', function 
($routeProvider, $locationProvider) {

        $routeProvider.when('/displayemployees',

            {

                templateUrl: 'EmployeeInfo/DisplayAllEmployees',

                controller: 'DisplayAllEmployeesController'

            });

        $routeProvider.when('/createemployee',

            {

                templateUrl: 'EmployeeInfo/CreateEmployee',

                controller: 'CreateEmployeeController'

            });

        $routeProvider.when("/editemployee",

            {

                templateUrl: 'EmployeeInfo/EditEmployee',

                controller: 'EditEmployeeController'

            });

        $routeProvider.when('/deleteemployee',

            {

                templateUrl: 'EmployeeInfo/DeleteEmployee',

                controller: 'DeleteEmployeeController'

            });

        $routeProvider.otherwise(

            {

                redirectTo: '/'

            });

        // $locationProvider.html5Mode(true);

        $locationProvider.html5Mode(true).hashPrefix('!')

    }]);

 
Service.js contains code for angular service, service is used to call WEB 
API for communicating with database
 
 var app = angular.module("ApplicationModule", []);
app.service("SinglePageCRUDService", function ($http) {

        //Function to Read All Employees
        this.getEmployees = function () {
            return $http.get("/api/EmployeeInfoes");
        };

        //Fundction to Read Employee based upon id
        this.getEmployee = function (id) {
            return $http.get("/api/EmployeeInfoes/" + id);
        };

        //Function to create new Employee
        this.post = function (Employee) {
            var request = $http({
                method: "post",
                url: "/api/EmployeeInfoes",
                data: Employee
            });
            return request;
        };

        //Function  to Edit Employee based upon id 
        this.put = function (id, Employee) {
            var request = $http({
                method: "put",
                url: "/api/EmployeeInfoes/" + id,
                data: Employee
            });
            return request;
        };

        //Function to Delete Employee based upon id
        this.delete = function (id) {
            var request = $http({
                method: "delete",
                url: "/api/EmployeeInfoes/" + id
            });
            return request;
        };
    });

CreateEmployeeController.js contains code for controller associated with 
child view for creating new employee.

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

app.controller('AddEmployeeController', function ($scope, 
SinglePageCRUDService) {

    $scope.EmpNo = 0;

    //The Save scope method used to define the Employee object and 

    //post the Employee information to the server by making call to the 
Service

    $scope.save = function () {

        var Employee = {

            EmpNo: $scope.EmpNo,

            EmpName: $scope.EmpName,

            Salary: $scope.Salary,

            DeptName: $scope.DeptName,

            Designation: $scope.Designation

        };

 

        var promisePost = SinglePageCRUDService.post(Employee);

 

 

        promisePost.then(function (pl) {

            $scope.EmpNo = pl.data.EmpNo;

            alert("EmpNo " + pl.data.EmpNo);

        },

            function (errorPl) {

                $scope.error = 'failure loading Employee', errorPl;

            });

 

    };

});
CreateEmployeeController.cshtml  contains view associated with above 
controller

@{

    ViewBag.Title = "CreateEmployee";

    Layout = "~/Views/Shared/_Layout.cshtml";

}

<h2>New Employee</h2>

    <div  ng-controller="CreateEmployeeController">

       

            <div>

                <table>

                    <tr>

                        <td>EmpNo</td>

                        <td><input type="text" ng-model="EmpNo" />  </td>

                    </tr>

                    <tr>

                        <td>EmpName</td>

                        <td><input type="text" ng-model="EmpName" />  </td>

                    </tr>

                    <tr>

                        <td>Salary</td>

                        <td><input type="text" ng-model="Salary" />  </td>

                    </tr>

                    <tr>

                        <td>DeptName</td>

                        <td><input type="text" ng-model="DeptName" />  </td>

                    </tr>

                    <tr>

                        <td>Designation</td>

                        <td><input type="text" ng-model="Designation" />  
</td>

                    </tr>

 

                </table>

 

            </div>

   

        <input type="button" ng-click="click()" value="Click">

    </div>

 

 

-- 
You received this message because you are subscribed to the Google Groups 
"Angular and AngularJS discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/angular/db28f8bb-535f-4e8e-8221-ff2037f36b87%40googlegroups.com.

Reply via email to