簡體   English   中英

如何使用angularjs ng-options和ng-model使用strict設置所選選項?

[英]How do I set selected option using angularjs ng-options and ng-model using a strict?

一切都很好,並且我在模型中設置了默認值,但似乎只是不想將其用作select元素中的默認選項。 如何完成獲取模型以選擇相應的語言iso值的操作? 另外,如何避免將空選項添加到選擇中?

示例數據:

// list of languages
[
 {"iso":"abk","language":"Abkhazian"},
 {"iso":"aar","language":"Afar"},
 {"iso":"afr","language":"Afrikaans"},
  ...
]

// location object containing the property for the language value
{
    "id":"516",
    "site":"Al Seela",
    "start_utc":"03:00:00",
    "end_utc":"06:00:00",
    ...
    "lang_iso":"eng",
    "language":"English"
}

標記:

<div ng-controller="StationListController as stationList" ng-init="init()">
    ...
    <div ng-repeat="location in station.locations" class="panel panel-default">
    ...
        <select class="form-control" id="{{'locationLang-' + location.id}}" ng-model="location.lang_iso" ng-options="lang.iso as lang.language for lang in locLanguages track by lang.iso"></select>

JS:

$scope.init = function () {
    $http.get($scope.ajaxurl + '?_mode=languages&_task=list').success(function(data, success) {
        $scope.locLanguages = data;
    }).error(function(error) {});
};

結果:

<select ng-options="lang.iso as lang.language for lang in locLanguages track by lang.iso" ng-model="location.lang_iso" id="locationLang-844" class="form-control ng-pristine ng-valid ng-touched">
    <option value="?" selected="selected"></option>
    <option value="abk" label="Abkhazian">Abkhazian</option>
    <option value="aar" label="Afar">Afar</option>
    <option value="afr" label="Afrikaans">Afrikaans</option>
    ...
</select>

解決空選項問題的唯一方法是在控制器中分配一個默認值。 如今,僅使用第一個值是非常標准的,因此只需將$scope.init更新為:

$scope.init = function () {
    $http.get($scope.ajaxurl + '?_mode=languages&_task=list').success(function(data, success) {
        $scope.locLanguages = data;
        $scope.location.lang_iso = {"iso":"abk","language":"Abkhazian"}; // or perhaps the entire object
    }).error(function(error) {});
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM