2014-04-30 14 views
19

यदि मैं अपना फॉर्म सत्यापन पास करता हूं (डेटाबेस मानों के विरुद्ध उपयोगकर्ता नाम और पासवर्ड जांचता हूं) तो मैं अपने उपयोगकर्ताओं को फिर से निर्देशित करने का प्रयास कर रहा हूं।

सत्यापन ठीक काम करता है लेकिन मेरे में। सिक्योर फ़ंक्शन रीडायरेक्ट काम नहीं कर रहा प्रतीत होता है, यह त्रुटि उत्पन्न करता है: 'संदर्भ त्रुटि: $ विंडो परिभाषित नहीं है'।

.success(function(data) { 
    console.log(data); 

     if (!data.success) { 
      // if not successful, bind errors to error variables 
      $scope.errorUserName = data.errors.userName; 
      $scope.errorUserPassword = data.errors.userPassword; 
     } else { 
      // if successful, bind success message to message 
      $scope.message = data.message; 
      $window.location=('twitter.com');  
    } 
}); 

मैं स्थान पथ को बदलने की कोशिश की है लेकिन कुछ भी काम कर रहा है:

कोड यह रहा। कोई विचार?

धन्यवाद!

LazyTotoro

+0

Twitter.com सिर्फ एक प्लेसहोल्डर है! :) – Charkizard

उत्तर

42

$window इंजेक्शन की जरूरत है।

इसे इंजेक्ट करने के लिए आप इसे अपने नियंत्रक फ़ंक्शन में पैरामीटर के रूप में जोड़ते हैं और कोणीय स्वचालित रूप से बाकी का ख्याल रखेगा।

उदाहरण के लिए:

app.controller('MyController', function MyController($scope, $window) { 

    $window.location = 'http://stackoverflow.com' 
}); 

आप AngularJS here में निर्भरता इंजेक्शन के बारे में अधिक पढ़ सकते हैं।

आप एक पूरा पृष्ठ पुनः लोड की जरूरत नहीं है आप के बजाय इंजेक्षन और $location उपयोग करना चाहिए:

// get the current path 
$location.path(); 

// change the path 
$location.path('/newValue'); 
+1

धन्यवाद! मैंने अभी "document.location.href = '' 'की कोशिश की और यह भी काम किया! : डी – Charkizard

+1

हाँ, लेकिन उस जगह को इंजेक्ट करें? –

+0

नए लोगों के लिए एक पूर्ण उत्तर नहीं है ... इंजेक्शन कहां है, नियंत्रक चर को नियंत्रक के फ़ंक्शन के अंदर एक चर के साथ कैसे लिंक करें ?! – Serge

संबंधित मुद्दे