2017-04-16 5 views
0

私はAngularJSJavascript - 信頼できるドロップダウンのAngular JSコードのこの部分が機能しないのはなぜですか?

<div> 
     Country: 
     </br> 
     <select data-ng-model="country" ng-options="country.name for country in countries" data-ng-change="updateCountry(country)"> 
      <option value="">Select country</option> 
     </select> 
    </div> 
    <div> 
     City</br> 
     <select data-ng-model="city" data-ng-options="city.name for city in countryItem"> 
      <option value="">Select city</option> 
     </select> 
    </div> 

コントローラコード

$scope.updateCountry = function(selectedCountry) 
    { 
     console.log("The selected country is 
"+JSON.stringify(selectedCountry)); 

     HomeFactory.setTappedCountryData(selectedCountry); 

     $scope.countryItem = HomeFactory.getTappedCountryData(); 

     console.log("The country Item is "+JSON.stringify($scope.countryItem)); 
    } 

工場コード

function setTappedCountryData(data){  
    console.log(JSON.stringify(data));  
    selectedCountry = data;  
}; 


    function getTappedCountryData(data){   
     console.log(JSON.stringify(data));  
    return selectedCountry;  
}; 

JSONデータ

[{ 
     "id": "1", "name":"USA", 
      "cities": [{ 
      "id": "1", 
       "name": "New York" 
     }, { 
      "id": "2", 
       "name": "Los Angeles" 
     }] 
    }, { 
     "id": "2", "name":"UK", 
      "cities": [{ 
      "id": "3", 
       "name": "London" 
     }, { 
      "id": "4", 
       "name": "Glasgow" 
     }] 
    }, 
    { 
     "id": "3", "name":"Russia", 
      "cities": [{ 
      "id": "5", 
       "name": "Moscow" 
     }, { 
      "id": "6", 
       "name": "St. Petersburg" 
     }] 
    }, 
    { 
     "id": "4", "name":"Spain", 
      "cities": [{ 
      "id": "7", 
       "name": "Madrid" 
     }, { 
      "id": "8", 
       "name": "Barcelona" 
     }] 
    }, 
    { 
     "id": "5", "name":"India", 
      "cities": [{ 
      "id": "9", 
       "name": "Delhi" 
     }, { 
      "id": "10", 
       "name": "Mumbai" 
     }] 
    }] 
を使用して、国、都市、信頼ドロップダウンを実装しようとしています

2番目のドロップダウンで特定の国の都市を取得できません。どこで私は間違っているのですか?

ハディJeddizahedが

唯一の問題は、コードが(iphone6などのモバイル機器などのNexus 6について)モバイルエミュレータdevelper Chromeで動作していない問題にされている解決した

+0

と同様の図では、実際にあなたの 'getTappedCountryData()'関数は任意の都市を返されていないが、これを行うことができます それを修正することは、問題を解決するか、より良い実践のために以下の答えを試すことになります。 – Sachin

+0

@Sachin bro第1国または国のドロップダウンではデフォルトとして1つの国が来るので、インドをデフォルト国にします。ここでもまた、アメリカはニューヨーク、英国はロシア、ロシアはモスクワ、スペインはマドリッド、インドはデリーです。私は第2ドロップダウンでその特定の国の第1ドロップダウン&デフォルト都市でデフォルト国を実装することができません – msm0204

+0

それに応じて質問を変更するか、それに対する新しい質問を作成してください。 – Sachin

答えて

1

このようにしてみてください。あなたも簡単な方法でコントローラに

$scope.updateCountry = function(selectedCountry) { 
    $scope.countryItem = selectedCountry.cities 
} 

この

<select data-ng-model="city" data-ng-options="city.name for city in country.cities"> 
     <option value="">Select city</option> 
</select> 

DEMO

+0

と表示されますが、あなたのためにもう少しリクエストがあります - 1つの国が1番目または国のドロップでデフォルトになりますインドをデフォルト国とする。 また、都市は2番目のドロップダウンのデフォルトになります。米国はニューヨーク、英国はロシア、ロシアはモスクワ、スペインはマドリッド、インドはデリーです。 2番目のドロップダウン – msm0204

+0

の兄弟があなたをアップアップし、あなたの回答を受け入れた – msm0204

+0

で、その特定の国の最初のドロップダウンとデフォルトの都市でデフォルトの国を実装することができません。 '$ scope.country = $ scope.countries [4];' '$ scope.city = $ scope.countries [4] .cities [0];' –

関連する問題