2017-01-06 3 views
0

AngularJSの新機能です。ここでは、HTMLでのセレクタの年の私の$scope次のとおりです。ここセレクタの現在の年(デフォルト)ビュー(AngularJS)

//get it from the backend 
$scope.years = ['2014', '2015', '2016', '2017', '2018']; 

は、私はこの$scopeを使用する私のhtmlです:

<select name="repeatSelect" id="repeatSelect" ng-model="yearFromSelector"> 
    <option ng-repeat="year in years" value="{{year}}">{{year}}</option> 
</select> 

私は私のアプリを実行したとき、私は数年で(空のセレクタを参照してくださいデフォルトでは内側):

enter image description here

が、私はセレクタをデフォルトする必要があります()内の他の年と現在の年を示しています。どうすればいいのかアドバイスしてください。

答えて

1

あなたはこのコードを使用することができます。コントローラで

$scope.years = ['2014', '2015', '2016', '2017', '2018']; 
var currentYear = new Date().getFullYear(); 
var index = $scope.years.indexOf(currentYear.toString()); 

$scope.yearFromSelector = $scope.years[index]; 

とHTML:

<select name="repeatSelect" id="repeatSelect" ng-model="yearFromSelector"> 
    <option ng-repeat="year in years" value="{{year}}">{{year}}</option> 
</select> 

又は

<select name="repeatSelect" id="repeatSelect" ng-model="yearFromSelector" ng-options="year as year for year in years"> 
    </select> 
1

この

<select ng-init="yearFromSelector='2017'" name="repeatSelect" id="repeatSelect" ng-model="yearFromSelector"> 
    <option ng-repeat="year in years" value="{{year}}">{{year}}</option> 
</select> 
0

がコントローラにこれを追加でください:

$scope.currentYear = new Date().getFullYear(); 

は、ビューにこれを追加します。

<select name="repeatSelect" id="repeatSelect" ng-model="yearFromSelector"> 
    <option ng-selected="year == currentYear" ng-repeat="year in years" value="{{year}}">{{year}}</option> 
</select> 
0

簡易答え:

JS:

$scope.yearFromSelector = new Date().getFullYear().toString();

HTML:ここ

<select ng-model="yearFromSelector" ng-options="year as year for year in years"> 
    </select> 
+0

NG-モデルを使用して実際の値を定義しているので、あなたはすでに質問 –

+0

申し訳ありませんが、に答えを受け入れた「{{年}}」=値を使用する必要はありません単純化された答えは、同様のソリューションを簡単に探している人を助けるかもしれません。 – SaiUnique

+0

ng-repeatでオプションがない場合、彼はこれを試すことができます。しかし、一度受け入れられると、ほとんどのユーザーは受け入れられた答えを見るでしょう –

0

はangularjsを使用して実装するための簡単な方法です。すでに

var myApp = angular.module('myApp',[]); 
 

 
function MyCtrl($scope) { 
 
    $scope.thisYear = new Date().getFullYear(); 
 
    $scope.years = ['2014', '2015', '2016', '2017', '2018']; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="myApp" ng-controller="MyCtrl"> 
 
    <select name="repeatSelect" id="repeatSelect" ng-model="thisYear"> 
 
    <option ng-repeat="year in years">{{year}}</option> 
 
    </select> 
 
</div>

関連する問題