javascript - tutorial - w3schools




AngularJS ব্যবহার করে অন্য পৃষ্ঠায় কীভাবে পুনঃনির্দেশ করবেন? (8)

আপনি কৌনিক $window ব্যবহার করতে পারেন:

$window.location.href = '/index.html';

একটি কনটোলারের ব্যবহারের উদাহরণ:

(function () {
    'use strict';

    angular
        .module('app')
        .controller('LoginCtrl', LoginCtrl);

    LoginCtrl.$inject = ['$window', 'loginSrv', 'notify'];

    function LoginCtrl($window, loginSrv, notify) {
        /* jshint validthis:true */
        var vm = this;
        vm.validateUser = function () {
             loginSrv.validateLogin(vm.username, vm.password).then(function (data) {          
                if (data.isValidUser) {    
                    $window.location.href = '/index.html';
                }
                else
                    alert('Login incorrect');
            });
        }
    }
})();

আমি একটি সার্ভিস ফাইলে কার্যকারিতা সম্পাদনের জন্য এজাক্স কলটি ব্যবহার করছি এবং যদি প্রতিক্রিয়া সফল হয় তবে আমি পৃষ্ঠাটি অন্য url এ পুনর্নির্দেশ করতে চাই। বর্তমানে, আমি সাধারণ জেএস "উইন্ডো.লোকেশন = প্রতিক্রিয়া ['বার্তা'];" ব্যবহার করে এটি করছি। তবে আমার এটি অ্যাংুলারজ কোড দিয়ে প্রতিস্থাপন করতে হবে। আমি স্ট্যাকওভারফ্লোতে বিভিন্ন সমাধান দেখেছি, তারা $ অবস্থান ব্যবহার করেছে। তবে আমি কৌনিক এ নতুন এবং এটি প্রয়োগ করতে সমস্যা হচ্ছে।

$http({
            url: RootURL+'app-code/common.service.php',
            method: "POST",
            headers: {'Content-Type': 'application/x-www-form-urlencoded'},
            dataType: 'json',
            data:data + '&method=signin'

        }).success(function (response) {

            console.log(response);

            if (response['code'] == '420') {

                $scope.message = response['message'];
                $scope.loginPassword = '';
            }
            else if (response['code'] != '200'){

                $scope.message = response['message'];
                $scope.loginPassword = '';
            }
            else {
                window.location = response['message'];
            }
            //  $scope.users = data.users;    // assign  $scope.persons here as promise is resolved here
        })

আপনি বিভিন্ন উপায়ে একটি নতুন URL এ পুনঃনির্দেশ করতে পারেন।

  1. আপনি docs.angularjs.org/api/ng/service/$window ব্যবহার করতে পারেন যা পৃষ্ঠাটি রিফ্রেশও করবে
  2. আপনি একক পৃষ্ঠার অ্যাপ্লিকেশনটির "ভিতরে থাকতে" এবং $location ব্যবহার করতে পারেন সেই ক্ষেত্রে আপনি $location.path(YOUR_URL); মধ্যে বেছে নিতে পারেন $location.path(YOUR_URL); বা $location.url(YOUR_URL); । সুতরাং 2 পদ্ধতির মধ্যে মূল পার্থক্যটি হ'ল। লোকেশন.আরল $location.url() পরামিতিগুলিও প্রভাবিত করে $location.path() লোকেশন.প্যাথ $location.path() না করে।

আমি $location এবং $window ডক্সটি পড়ার পরামর্শ দিচ্ছি যাতে আপনি তাদের মধ্যে পার্থক্য সম্পর্কে আরও ভাল উপলব্ধি অর্জন করতে পারেন।


আমি কৌণিক অ্যাপ্লিকেশনটিতে পৃথক পৃষ্ঠায় পুনঃনির্দেশ করার ক্ষেত্রেও সমস্যার মুখোমুখি হয়েছি

ওয়াল্ড তার উত্তরে যেভাবে পরামর্শ দিয়েছে আপনি সেই You $window যুক্ত করতে পারেন বা আপনি যদি $window যুক্ত করতে না চান তবে কেবল একটি সময়সীমা যুক্ত করুন এবং এটি কার্যকর হবে!

setTimeout(function () {
        window.location.href = "http://whereeveryouwant.com";
    }, 500);

আমি নতুন পৃষ্ঠায় পুনঃনির্দেশ করতে নীচের কোডটি ব্যবহার করেছি

var app = angular.module('app', ['ui.router']);

app.config(function($stateProvider, $urlRouterProvider) {

  // For any unmatched url, send to /index
  $urlRouterProvider.otherwise("/login");

  $stateProvider
    .state('login', {
      url: "/login",
      templateUrl: "login.html",
      controller: "LoginCheckController"
    })
    .state('SuccessPage', {
      url: "/SuccessPage",
      templateUrl: "SuccessPage.html",
      //controller: "LoginCheckController"
    });
});

app.controller('LoginCheckController', ['$scope', '$location', LoginCheckController]);

function LoginCheckController($scope, $location) {

  $scope.users = [{
    UserName: 'chandra',
    Password: 'hello'
  }, {
    UserName: 'Harish',
    Password: 'hi'
  }, {
    UserName: 'Chinthu',
    Password: 'hi'
  }];

  $scope.LoginCheck = function() {
    $location.path("SuccessPage");
  };

  $scope.go = function(path) {
    $location.path("/SuccessPage");
  };
}

এবং আমার নিয়ামক ফাংশনে ইনজেকশন করা $ উইন্ডো অবজেক্ট।


এটি আপনাকে সাহায্য করতে পারে !!

AngularJs কোড-নমুনা

$window.location.href = '/foldername/page.html';

এটি করার একটি ভাল উপায় হ'ল go state.go ('statename', {params ...}) ব্যবহারের ক্ষেত্রে ব্যবহারকারীর অভিজ্ঞতার জন্য দ্রুত এবং আরও বন্ধুত্বপূর্ণ যখন আপনি পুরো অ্যাপ্লিকেশন কনফিগারেশন এবং স্টাফগুলি পুনরায় লোড এবং বুটস্রেপ করতে না হয় don't

(function() {
    'use strict';

    angular
        .module('app.appcode')
        .controller('YourController', YourController);

    YourController.$inject = ['rootURL', '$scope', '$state', '$http'];

    function YourController(rootURL, $scope, $state, $http) {

        $http({
                url: rootURL + 'app-code/common.service.php',
                method: "POST",
                headers: {'Content-Type': 'application/x-www-form-urlencoded'},
                dataType: 'json',
                data:data + '&method=signin'

            }).success(function (response) {
                if (response['code'] == '420') {

                    $scope.message = response['message'];
                    $scope.loginPassword = '';
                } else if (response['code'] != '200') {

                    $scope.message = response['message'];
                    $scope.loginPassword = '';
                } else {
                    // $state.go('home'); // select here the route that you want to redirect
                    $state.go(response['state']); // response['state'] should be a route on your app.routes
                }
            })
    }

});

// রুট

(function() {
    'use strict';

    angular
        .module('app')
        .config(routes);

    routes.$inject = [
        '$stateProvider',
        '$urlRouterProvider'
    ];

    function routes($stateProvider, $urlRouterProvider) {
        /**
         * Default path for any unmatched url
        */
        $urlRouterProvider.otherwise('/');

        $stateProvider
            .state('home', {
                url: '/',
                templateUrl: '/app/home/home.html',
                controller: 'Home'
            })
            .state('login', {
                url: '/login',
                templateUrl: '/app/login/login.html',
                controller: 'YourController'
            })
            // ... more routes .state
   }

})();

কৌণিক জেএসে আপনি আপনার ফর্মটি ( জমা দেওয়ার সময় ) অন্য পৃষ্ঠায় উইন্ডোস.লোকেশন.href = '' ব্যবহার করে পুনর্নির্দেশ করতে পারেন;

এটার মত:

postData(email){
    if (email=='undefined') {
      this.Utils.showToast('Invalid Email');
    } else {
      var origin = 'Dubai';
      this.download.postEmail(email, origin).then(data => { 
           ...
      });
      window.location.href = "https://www.thesoftdesign.com/";      
    }
  }

কেবল এটি চেষ্টা করুন:

 window.location.href = "https://www.thesoftdesign.com/"; 

 (function () {
"use strict";
angular.module("myApp")
       .controller("LoginCtrl", LoginCtrl);

function LoginCtrl($scope, $log, loginSrv, notify) {

    $scope.validateUser = function () {
        loginSrv.validateLogin($scope.username, $scope.password)
            .then(function (data) {
                if (data.isValidUser) {
                    window.location.href = '/index.html';
                }
                else {
                    $log.error("error handler message");
                }
            })
    }
} }());





angularjs