2012-09-25 19 views
22

में एकाधिक आंशिक दृश्यों के लिए एक एकल HTML दृश्य बनाएं, मैं एकाधिक टैग के साथ एक एकल HTML फ़ाइल बनाना चाहता हूं। इन्हें अलग-अलग व्यक्तिगत विचारों के रूप में कार्य करना चाहिए जिन्हें आम तौर पर आंशिक फ़ोल्डर में रखा जाता है। और फिर मैं उन्हें रूटिंग नियंत्रक में निर्दिष्ट करना चाहता हूं। अब मैं के रूप में कर रहा हूँ के लिए इस प्रकार है: app.jsangularjs

angular.module('productapp', []). 
    config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 
     when('/productapp', {templateUrl: 'partials/productList.html', controller: productsCtrl}). 
     when('/productapp/:productId', {templateUrl: 'partials/edit.html', controller: editCtrl}). 
     otherwise({redirectTo: '/productapp'}); 
     }], 
     ['$locationProvider', function($locationProvider) { 
      $locationProvider.html5Mode = true; 
}]); 

index.html

<!DOCTYPE html> 
<html ng-app = "productapp"> 
<head> 
<title>Search form with AngualrJS</title> 
     <script src="../angular-1.0.1.min.js"></script> 
     <script src="http://code.jquery.com/jquery.min.js"></script> 
     <script src="js/products.js"></script> 
     <script src="js/app.js"></script> 
</head> 
<body> 
    <div ng-view></div> 
</body> 
</html> 

partials फ़ोल्डर में: मैं 2 एचटीएमएल edit.html नामित दृश्य दिखाई देते हैं और

productlist.html

इन 2 फाइलों को बनाने के बजाय मैं उन्हें अलग-अलग में जोड़ना चाहता हूं और रूटिंग के माध्यम से उन्हें (divs) कहता हूं। मैं यह कैसे कर सकता हूं?

+0

कृपया समझाएं। क्या आप index.html में div जोड़ना चाहते हैं? –

+0

index.html में कोई नहीं लेकिन कुछ अन्य html फ़ाइल – z22

+0

में क्यों jQuery का उपयोग नहीं? या सिर्फ divs को दिखाने/छिपाने के लिए जावास्क्रिप्ट, सभी एक ही div में। – nycynik

उत्तर

42

आप एनजी-स्विच का उपयोग सशर्त मार्ग मानकों के आधार पर, एक में शामिल हैं के साथ अपने productlist रेंडर करने के लिए कर सकता है।

अपने config में इस प्रयास करें:

angular.module('productapp', []) 
     .config(['$routeProvider', function($routeProvider) { 
     $routeProvider 
     .when('/productapp', {templateUrl: 'partials/productList.html', controller: productsCtrl}) 
     .when('/productapp/:productId', {templateUrl: 'partials/productList.html', controller: productsCtrl}) 
     .otherwise({redirectTo: '/productapp'}); 

और अपने नियंत्रक में:

function productsCtrl($scope, $routeParams) { 
     $scope.productId = $routeParams.productId; 
    } 

और अपने html में:

<...productListHtml...> 
    <div ng-switch="productId != null"> 
     <div ng-switch-when="true" ng-include="'partials/product.html'"> 
    </div> 
0

मैं घोंसले विचारों और डिप लिंक के साथ समस्या थी अंगुलर में $ राउटरप्रोवाइड एकाधिक एनजी-व्यू का समर्थन नहीं करता है .. लेकिन मुझे यह संभव समाधान मिला कि यह कैसे हो सकता है एन here। यह अनुरोध संदर्भ का उपयोग कर मैन्युअल रूप से मार्गों को सौंपने और संदर्भ प्रस्तुत करने पर आधारित है।

0

मैं एक ही समस्या थी, अब वहाँ इसके लिए एक समाधान का उपयोग कर रहा है: UI-Router

इस का उपयोग करते हुए और नहीं ngRoute आप "ui-दृश्य का उपयोग कर एक ही पृष्ठ में अनेक दृश्य हो सकता है है का लाभ " नामकरण परंपरा।