Я использую шаблон администрирования inspinia и хотел отправить http-запрос на веб-API. У меня есть угловой скрипт JS, и я должен был его использовать.

У меня есть следующий скрипт Ангуара. И где это использовать. я должен использовать на той же странице, например, views/somefile.html или в любом другом контроллере? Я новичок в Angular JS и этот шаблон.

$http({
    url: 'url-here',
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    data: JSON.stringify(parameter)
}).success(function(data, status) {

    if (data.status == 'success') {
        $scope.succ = "success";
        var sessionid = data.doctor.doctor_id;

        $timeout(function() {
            $window.location.href = 'login?sessionid=' + sessionid + '';
        }, 1000);
    } else if (data.status == 'failure') {
        $scope.succ = "fail";
    }
});

1 ответ

Вот пример, который может вам помочь. Поддержание чистоты и многократного использования вашего кода является наиболее важным. Поэтому всегда держите свой общий код на уровне сервиса.

// Используем Angular 1

var app = angular.module("Demo", []);
app.controller("DemoController", ["$scope", "DemoService", "$window",    "$timeout", function($scope, DemoService, $window, $timeout){
    $scope.validateUser = function(){
        DemoService.userValidation($scope.user, $scope.validateUserSuccess, $scope.validateUserError);
    }

    $scope.validateUserSuccess = function(data){
        // Success Callback
        $scope.succ = "success";
        var sessionid = data.doctor.doctor_id;

        $timeout(function() {
            $window.location.href = 'login?sessionid=' + sessionid + '';
        }, 1000);
    };

    $scope.validateUserError = function(data){
        // Error Callback
        $scope.succ = "fail";
    };
}]);

app.service("DemoService", ["$http", function($http){
    this.userValidation = function(parameter, successCB, errorCB){
        $http({
            url: 'url-here',
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            data: JSON.stringify(parameter)
        }).success(function(data, status) {

           if (data.status == 'success') {
               successCB(data);
            } else if (data.status == 'failure') {
                errorCB(data);
           }

    });
};
}]);

// Используем Angular 2

            // parent.module.ts

    import { NgModule } from '@angular/core';
    import { BrowserModule } from '@angular/platform-browser';
    import { HttpModule, JsonpModule } from '@angular/http';

    import { LandingComponent } from './view/landing.component';

    import { AdminService } from './service/admin.service';

    @NgModule({
      imports : [
        BrowserModule,
        HttpModule,
        JsonpModule
      ],
      declarations : [
        LoginComponent
      ],
      providers : [
        AdminService
      ],
      bootstrap : [ LandingComponent ]
    })
    export class ParentModule {}


    // admin.service.ts

    import { Injectable } from '@angular/core';
    import { Admin } from '../util/admin';
    import { Http, Headers } from '@angular/http';

    import 'rxjs/add/operator/toPromise';

    @Injectable()
    export class ValidateUser {
      adminObj = {};
      option = new Headers({
        "Content-Type": "application/json"
      });

      constructor (private http: Http) {}

      validateUser(user: any) : Promise<any> {
        return this.http.post("http://127.0.0.1:3002/users", JSON.stringify(user), {headers:this.option}).toPromise();
      }
    }

    // login.component.ts

    import { Component } from '@angular/core';
    import { AdminService } from '../../service/admin.service';
    import { Admin } from '../../util/admin';

    @Component({
      moduleId : module.id,
      templateUrl : "./login.component.html",
      styleUrls : ['./login.component.css']
    })
    export class LoginComponent {
      adminUser = {};

      constructor(
        private adminService : AdminService
      ){}

      validate() : void {
        this.adminService.validateUser(this.adminUser).then((success)=>{
            this.adminService.setAdminDetail(JSON.parse(success._body));
        }).catch((err)=>{
          alert("Invalid credential")
        });
      }
    }
Другие вопросы по тегам