2013-04-29 15 views
13

में AngularJS ngModel निर्देश I angularjs प्रोजेक्ट पर काम कर रहा हूं और मुझे ngModel के साथ समस्या में बाध्यकारी नहीं है। लेकिन एक ही अवधारणा किसी अन्य चयन टैग और उसी HTML पृष्ठ में काम कर रही है। नीचे कोड है।चुनिंदा

<select ng-model="selectedFont" 
      ng-options="font.title for font in fonts" 
      ng-change="onFontChange()"> 
    </select> 

onFontChange() फ़ंक्शन नियंत्रक में रखा गया है।

कोई भी मदद अत्यधिक सराहनीय है ... अग्रिम धन्यवाद।

+1

कृपया पूरा कोड साझा करें या jsfiddle डेमो साझा करें –

+0

मुझे jsfiddle –

+0

का उपयोग करने के तरीके के बारे में पता नहीं है क्या आप 'onFontChange() 'के लिए कोड पोस्ट कर सकते हैं? –

उत्तर

20

टोनी टट्टू की बेला के आधार पर:

<div ng-app ng-controller="MyCtrl"> 
    <select ng-model="opt" 
      ng-options="font.title for font in fonts" 
      ng-change="change(opt)"> 
    </select> 

    <p>{{opt}}</p> 
</div> 

एक नियंत्रक के साथ:

function MyCtrl($scope) { 
    $scope.fonts = [ 
     {title: "Arial" , text: 'Url for Arial' }, 
     {title: "Helvetica" , text: 'Url for Helvetica' } 
    ]; 
    $scope.change= function(option){ 
     alert(option.title); 
    } 
} 

http://jsfiddle.net/basarat/3y5Pw/43/

+3

इच्छा है कि मैं इसे दो बार ऊपर उठा सकता हूं। – Skitterm

+0

आप यहां बताए गए '$ स्कोप। $ Watch()' का उपयोग भी कर सकते हैं: http://stackoverflow.com/questions/15727219/how-can-i-detect-when-a-user-changes-the-value- में एक का चयन-ड्रॉप-डाउन का उपयोग-अंगुल – Caumons

2

पहले (स्थानीय या सर्वर से हो सकता है) डेटा बनाने के नियंत्रक में। और डिफ़ॉल्ट मान प्रारंभ करें, जो HTML फॉर्म में चयनित डिफ़ॉल्ट आइटम को मजबूर करता है।

// supported languages 
$scope.languages = ['ENGLISH', 'SPANISH', 'RUSSIAN', 'HINDI', 'NEPALI']; 
// init default language 
$scope.language = 'ENGLISH'; 

अब आप अपने HTML प्रपत्र

<select class="form-control" ng-model="language"> 
    <option ng-repeat="language in languages">{{language}}</option> 
</select> 


स्क्रीनशॉट में यहाँ है (ध्यान दें बूटस्ट्रैप सीएसएस प्रयोग किया जाता है और यहाँ शामिल नहीं)।

enter image description here


आप नियंत्रक में एक परीक्षण कर सकता है परिवर्तन

$scope.$watch('language', function (newVal, oldVal) { 
    console.log(oldVal + " -> " + newVal); 
}); 

काम कर रहा है कि क्या अंग्रेजी -> रूसी

रूसी -> स्पेनिश

स्पैनिश -> रूसी

आशा है कि यह सहायक होगा। धन्यवाद!