2014-07-17 6 views
13

साबित कर रहा है मैं कोणीय का उपयोग कर रहा हूं, और मैं कुछ अन्य सामानों पर काम करते हुए पिछले 2 दिनों के लिए एक optgroup बनाने की कोशिश कर रहा हूं, और मैं स्टंप हो गया हूं। मुझे एक एनजी-विकल्प बनाना पड़ा, लेकिन जब तक मुझे एहसास हुआ कि मुझे एक की आवश्यकता है, तब तक एक ऑप्टग्रुप पर विचार नहीं किया। मैंने इसे जोड़ने के लिए ng-options का उपयोग करने का प्रयास किया, लेकिन यह या तो इसे पूरी तरह से अनदेखा कर देगा, कोड को गड़बड़ कर देगा या विकल्पों को पूरी तरह अनदेखा कर देगा।कोणीय में optgroups जोड़ना मुश्किल

अगर मैं वास्तव में (डबल) एम्परसैंड का उपयोग कर सकता हूं तो मुझे कोई सुराग नहीं था, इसलिए मैंने दोनों एनजी विकल्पों को संयोजित करने की कोशिश की, लेकिन इसका कोई फायदा नहीं हुआ। इसके अलावा, मैंने ओडेटोकोड में पाए गए एक विशिष्ट कोड के साथ खिलवाड़ किया (जो वादा करता था, लेकिन इसकी सीमित संरचना के कारण, मेरे कोड के साथ शामिल नहीं किया जा सका)।

मैंने जो भी कोशिश की, मैंने अपना कोड तोड़ दिया। मूल कोड (एक पूर्व मेरी कई अन्य mods के सबसे करने के लिए) से कम है, लेकिन मैं यह भी इसके लिए plunker है:

http://plnkr.co/edit/xCLe2GFShUMUlIySPLH9?p=info

एचटीएमएल

<!DOCTYPE html> 
<html ng-app="myApp"> 

    <head> 
    <link rel="stylesheet" href="style.css"> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.js"></script> 
    <script src="script.js"></script> 
    </head> 

    <body> 


    <form name="FORM" ng-controller="appController"> 
<the-ratings model="review.ratings">   
</the-ratings> 
</form> 

    </body> 

</html> 

जे एस

(function(){ 

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

app.controller('appController', ['$scope', function($scope) { 
     $scope.review = {}; 
     $scope.review.ratings = '5 stars'; 
    }]) 
    app.directive('theRatings', function() { 

    return { 
     restrict: 'E', 
     scope: { model: '=' }, 
     template: '<select ng-model="model" ng-options="option.name as option.value for option in options"></select>', 
     controller: function($scope) { 
     $scope.options = [ 
      { name:'test', namegroup: 'Rate the product', value:'test2',valueName: 'NA' }, 
      { name: '1 star', value: '1 star' }, 
      { name: '2 stars', value: '2 stars' }, 
      { name: '3 stars', value: '3 stars' }, 
      { name: '4 stars', value: '4 stars' }, 
      { name: '5 stars', value: '5 stars' } 
     ]; 
     } 

    }; 
    }); 


})(); 

उत्तर

21

सुनिश्चित नहीं हैं कि क्या आप तो मैं एक अतिरिक्त संपत्ति type जोड़ा द्वारा उन्हें समूह हैं:

सिंटेक्स:

ng-options="option.name as option.value group by option.type for option in options" 

DEMO

+1

आह डॉन लॉल, अब मैं समझता हूं कि मैं कहां गलत हुआ। मुझे वास्तव में इसे हटाने से पहले मेरे कोड से, लेकिन मेरा ऑप्टग्रुप अंत में था। मैंने हाथ से पहले इस्तेमाल किया था, लेकिन मुझे वापस समझ में नहीं आया कि प्रत्येक विकल्प को टाइप की आवश्यकता है: टाइप 1 "आदि। अब जब मैं समझता हूं कि यह अच्छी तरह से काम करता है:) असल में, एक बार जब आप एक प्रकार का उपयोग करते हैं, तो यह एक बार बनाता है और विकल्पों में से प्रत्येक को उस प्रकार के अंतर्गत वर्गीकृत किया जाता है। मुझे यह समझने के लिए धन्यवाद कि: डी – user54600

+0

इसके बारे में सोचें कि सरणी – charlietfl

+0

ओह के प्रत्येक तत्व पर एक प्रश्न बनाने जैसा थोड़ा सा है और बुरा मत मानो। 'ng-options' में उपयोग करने के लिए कुछ समय लगता है – charlietfl

4

में इसका एक अच्छा उदाहरण है, यदि आप विकल्पों की विशेषता पर समूह करना चाहते हैं तो आप 'समूह द्वारा' खंड जोड़ सकते हैं। उदाहरण के लिए:

$scope.options = [ 
    { name:'test', namegroup: 'Rate the product', value:'test2',valueName: 'NA' }, 
    { type: 'one', name: '1 star', value: '1 star' }, 
    { type: 'one', name: '2 stars', value: '2 stars' }, 
    { type: 'two', name: '3 stars', value: '3 stars' }, 
    { type: 'two', name: '4 stars', value: '4 stars' }, 
    { type: 'two', name: '5 stars', value: '5 stars' } 
]; 

और के एक एनजी-विकल्प:

"option.name as option.value group by option.type for option in options" 
+1

जैसा कि मैंने चार्लीटफ्ल को कहा था क्योंकि उसका जवाब पहले आया था (जो मैं आपको भी कह रहा हूं): आह डॉन लॉल, अब मैं समझता हूं कि मैं कहां गलत हुआ। मैं वास्तव में इसे अपने कोड से हटाने से पहले था, लेकिन मेरा optgroup अंत में था। मैंने हाथ से पहले इस्तेमाल किया था, लेकिन मुझे वापस समझ में नहीं आया कि प्रत्येक विकल्प को टाइप की आवश्यकता है: टाइप 1 "आदि। अब जब मैं समझता हूं कि यह अच्छी तरह से काम करता है :) असल में, एक बार जब आप एक प्रकार का उपयोग करते हैं, तो यह बनाता है एक बार और विकल्पों में से प्रत्येक को उस प्रकार के तहत वर्गीकृत किया गया है। मुझे यह समझने के लिए धन्यवाद: डी – user54600

+0

कोई समस्या नहीं। मदद करने में खुशी! – zetetic

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