2013-07-20 12 views
65
<button type="button" class="btn btn-primary" ng-click="openTab()">new tab</button> 

openTab = function() { 
    $http.post('www.google.com'); 
} 

जो मैं चाहता हूं वह एक आवश्यकता है और जब आप "ओपनटाब" बटन पर क्लिक करते हैं तो एक नए टैब में प्रतिक्रिया एचटीएमएल खोलें। $http के साथ ऐसा करने का कोई तरीका नहीं है। मुझे लगता है कि यह शायद आसान है, लेकिन मुझे कोई रास्ता नहीं मिल रहा है।बटन पर एक नया टैब खोलें AngularJS

+0

के लिए पुनः निर्देशित समाधान स्वीकार कर सकते हैं इस प्रकार

आप नियंत्रक में इस काम इंजेक्षन $ खिड़की बनाने के लिए? मेरा वोट @Aaron एक के लिए है :) – Sampath

उत्तर

148

आप $ खिड़की सेवा here का उपयोग करके सभी अपने नियंत्रक के भीतर ऐसा कर सकते हैं। $ विंडो वैश्विक ब्राउज़र ऑब्जेक्ट विंडो के चारों ओर एक रैपर है। के रूप में

.controller('exampleCtrl', ['$scope', '$window', 
    function($scope, $window) { 
     $scope.redirectToGoogle = function(){ 
      $window.open('https://www.google.com', '_blank'); 
     }; 
    } 
]); 

यह अच्छी तरह से काम करता है जब गतिशील मार्गों

+1

यह मेरे लिए काम करता है। धन्यवाद :) – Sampath

+1

क्रोम इस पॉपअप को लॉक करता है .. मैं इसे कैसे लॉक कर सकता हूं और इसके बारे में उपयोगकर्ता को सूचित कर सकता हूं? –

+0

क्रोम और फ़ायरफ़ॉक्स में इसके कामकाजी जुर्माना लेकिन आईई उपयोगकर्ता में लॉगआउट मिलता है और लॉगिन पेज पर रीडायरेक्ट किया जाता है। क्या आईई के लिए समस्या को हल करने के लिए कुछ काम आसपास हैं –

0

आप $location सेवा

कोणीय दस्तावेज़ों का उपयोग करना चाहिए:

+3

स्थान आपको एक नया टैब खोलने की अनुमति नहीं देता है। –

14

मैं इस तरह से इस सवाल को हल किया।

<a class="btn btn-primary" target="_blank" ng-href="{{url}}" ng-mousedown="openTab()">newTab</a> 

$scope.openTab = function() { 
    $scope.url = 'www.google.com'; 
} 
+0

कमाल हैक। ❤️ – phegde

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