2017-05-30 37 views
0

我有一個網站建立在MEAN堆棧上,我有一個選擇框,其中一些城市名稱正在從MongoDB中檢索。現在我使用Angular在我的HTML中顯示這些名稱,但是現在我希望在加載頁面時顯示默認名稱,以便至少顯示一些信息。我已經搜索了我可以使用的內容,並提出了ng-init,但這對我並不適用。還有其他選擇嗎?頁面刷新時獲取默認選擇的項目

這是我的HTML:

<div ng-controller="cityCtrl"> 
    <div class="container plumbers"> 
    <div class="searchbox"> 
     <div class="plumber-by-city col-sm-12" style="margin-bottom: 20px;"> 
     <div class="title-1">Zoek op plaatsnaam</div> 
      <select ng-model="selectedItem" ng-options="item as item.city for item in items"></select><span class="fa fa-caret-down"></span> 
     </div> 
    </div> 
    </div> 
</div> 

這是我的角度,從數據庫中檢索數據:

app.controller('cityCtrl', function($scope,$http){ 
    $scope.items = []; 

    $http.get('/getdata').then(function(d){ 
    console.log(d); 
    $scope.items = d.data; 
    },function(err){ 
    console.log(err); 
    }); 
}); 
+1

你應該初始化'selectedItem'。試試這個'$ scope.selectedItem = $ scope.items [0]' –

+0

除了哈迪的答案,你可以初始化'$ scope.items = [{city:amsterdam}]'或者你的回答看起來是 –

+0

應該顯示什麼值作爲默認'selectedItem'? –

回答

0

您可以使用ng-selected||運營商等,如果有對selectedItem一個值,則它會被選中,否則默認選擇數組的第一個對象。

var app = angular.module("MyApp", []).controller("cityCtrl", function($scope) { 
 
$scope.items = [{city: 'abc'}, {city: 'cde'}, {city: 'fgh'}]; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="MyApp" ng-controller="cityCtrl"> 
 
    <div class="container plumbers"> 
 
    <div class="searchbox"> 
 
     <div class="plumber-by-city col-sm-12" style="margin-bottom: 20px;"> 
 
     <div class="title-1">Zoek op plaatsnaam</div> 
 
      <select ng-selected="selectedItem = selectedItem || items[0]" ng-model="selectedItem" ng-options="item as item.city for item in items"></select><span class="fa fa-caret-down"></span> 
 
     </div> 
 
     {{selectedItem}} 
 
    </div> 
 
    </div> 
 
</div>