我想使用angularjs設置加載選擇框的默認項目。使用angularjs設置選擇框的默認項目
我加載從2 JSON的兩個選擇框,所以第二個選擇框,命名爲 '城市' 的第一個選擇框中依賴關 '國家':
<label>Country:</label>
<select name="country" ng-model="form.country"
ng-options="c.n for c in countryList"
ng-change="countryChanged()" required></select>
<label>City:</label>
<select name="city" ng-model="form.city"
ng-options="c for c in cityList" required></select>
PLUNKER http://plnkr.co/edit/hKZLbMbwGfmaa8CtSy0H?p=preview
它使用$http.get
加載選擇框。如果我將它默認爲第一個選項,它會裝載得很好。但讓我們說,我想指定一個特定的選項來加載,但我只能從json發送一個特定的值,我會怎麼做?在下面的代碼中,註釋行是我嘗試過的,但它所做的只是加載正確的城市列表,但不選擇國家/地區選擇框。
countries.json
[
{"c":"au","n":"Australia","g":"1"},
{"c":"fr","n":"France","g":"2"},
{"c":"ge","n":"Germany","g":"2"}
]
控制器:
$http.get('countries.json')
.success(function (data) {
$scope.countryList = data;
$scope.form.country = data[0];
// $scope.form.country.c = 'fr'; <<<--- *trying to set default*
$scope.countryChanged();
});
$scope.countryChanged = function() {
$http.get($scope.form.country.c + '-cities.json')
.success(function (data) {
$scope.cityList = data;
$scope.form.city = data[0];
});
}
而且,如果有更好的方式來實現這一目標,請張貼。
注意:我無法加入json。我分裂它,因爲在現實世界中,可能有100個國家,每個國家都有100個城市,json將會非常龐大。
謝謝。幾乎是我以後的事情。雖然我認爲會有一種'角色'的方式來做到這一點。 Angularjs需要一些json在那裏查詢內容(*咳嗽* linq);) – jzm 2013-05-01 07:06:44