2014-10-15 9 views
12

मेरे फार्म से अलग मॉडल डिफ़ॉल्ट चयन से पता चलता select और ng-options AngularJS 1.2.26 पर काम किया बिल्कुल ठीक है, हमेशा डिफ़ॉल्ट चयन दिखा यदि toy.toy_container_namecontainers में उपलब्ध था सरणी। हालांकि, 1.3.0 तक अपग्रेड करने के बाद, चयन ड्रॉपडाउन अब डिफ़ॉल्ट चयन नहीं दिखाता है (क्रोम, एफएफ और सफारी में समान व्यवहार इसलिए ब्राउज़र समस्या नहीं)। मेरे सेलेनियम परीक्षण ने इसे पकड़ा, और अब मैं क्यों परेशान हूं। 1.3.0 में कोई बहिष्करण या ध्यान देने योग्य परिवर्तन नहीं दिखते हैं (1.2.6 से) जो इस समस्या का परिणाम हो सकता है। इसके अलावा,AngularJS 1.3.0 नहीं रह गया है जब एनजी-विकल्प संदर्भ का चयन एनजी मॉडल

<select class="form-control" ng-model="toy.toy_container_name" ng-options="c.container_name as c.container_name for c in containers" required> 
     <option value="">- Pick Container -</option> 
</select> 

आगे यह उलझन यह है कि स्रोत का निरीक्षण सही चयन दिखाता है;

क्रोम तत्वों इंस्पेक्टर:

<option value="" class="">- Pick Container -</option> 
<option value="0">A-BIN</option> 
<option value="1" selected="selected">B-BIN</option> 
<option value="2">F-BIN</option> 
<option value="3">G-BIN</option> 

संपादित करें: हालांकि, लटकती चयन बॉक्स चयनित डिफ़ॉल्ट प्रदर्शित नहीं करता है मैं इस मुद्दे पाया:

क्यों चलती हैं '$ scope.toy = खिलौना, ' कंटेनरों के लिए लाने के बाद नए कोणीय 1.3.0 में एक अंतर बनाते हैं?

$http({method: 'GET', url:'/toys/'+$stateParams.id}).success(function(toy, status, headers, config) { 

     $scope.original = angular.copy(toy); 
     //$scope.toy = toy; // WORKED in AngularJS 1.2.26 but not 1.3.0 

     $http({method: 'GET', url:'/containers'}).success(function(containers, status, headers, config) { 
      $scope.toy = toy; // moved from where previously commented; NOW works with AngularJS 1.3.0 
      $scope.containers = containers; 
     }).error(errorMessage.onError); 

}).error(errorMessage.onError); 
+0

इसे दोहराने में सक्षम हैं? http://plnkr.co/edit/6GpDcNR792kLL0peEzrk?p=info – tasseKATT

+0

@tasseKATT इस समस्या को सुधारने वाले कोड अपडेट के साथ अद्यतन समस्या को देखता है। मैं अभी भी यह पता लगाने की कोशिश कर रहा हूं कि इससे समस्या क्यों होगी .... कोई विचार? – user1322092

+0

मैं स्थिति को दोहराने में सक्षम था। यह 1.3.0-आरसी.5 में काम करता है, लेकिन 1.3.0 में नहीं, इसलिए हालिया रिलीज में कुछ होना चाहिए। – tasseKATT

उत्तर

0

समस्या 1.3x शाखा में एक ज्ञात बग है। कृपया यहां देखें: https://github.com/angular/angular.js/issues/11835

नियंत्रक का चयन नहीं होता है कि विकल्प बदल गए हैं - मैन्युअल रूप से प्रस्तुत करना आवश्यक है।

0

मैं तुम्हें सर्वर से प्रतिक्रिया के लिए प्रतीक्षा करें और फिर डोम रेंडर करने के लिए की जरूरत है, देखो:

<div ng-if='toy'> 
    <select class="form-control" ng-model="toy.toy_container_name" ng-options="c.container_name as c.container_name for c in containers" required> 
     <option value="">- Pick Container -</option> 
    </select> 
</div> 

(toy नहीं, render नहीं)

0

खैर मुझे लगता है कि आपको चाहिए लोड पर डिफ़ॉल्ट मान दिखाने के लिए एनजी-इनिट का उपयोग करें।

<select class="form-control" ng-init="<value you want as default>" ng-model="toy.toy_container_name" ng-options="c.container_name as c.container_name for c in containers" required> 
    <option value="">- Pick Container -</option> 
</select> 
संबंधित मुद्दे