2016-05-24 67 views
0

我已經在我的index.html角 - NG-初始化變量範圍不及格進入視野

我已經在我的app.js

.controller('MainCtrl', function ($scope) { 
    var today = new Date(); 
    var year = today.getFullYear(); 
    var month = today.getMonth(); 

    $scope.date = { 
     year: year, 
     month: month 
    }; 

    $scope.months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 

    $scope.currentMonth = $scope.months[month - 1]; 

    var years = []; 

    var earliestYear = year - 100; 
    for (var i = earliestYear; i <= year; i++) { 
     years.push(i); 
    } 

    $scope.years = years; 

    $scope.$watchCollection('date', function (date) { 
     $scope.currentDate = new Date(date.year, date.month, 1); 
    }); 

我的NG-以下以下「date.year」的init有效,但不適用於「currentMonth」。但是,我知道currentMonth已連接到視圖。 ng-init爲什麼不能識別ng-init =「currentMonth」?

回答

2

ng-init是一個表達式,因此您需要將currentMonth分配給您的date.month模型。

<select ng-model="date.month" ng-init="date.month=currentMonth" ng-options="month for month in months"> 
</select> 

ng-init="date.year"實際上沒有做任何事情。 date.year模型已被分配2016,所以它看起來像它的作品。

請參閱plunker

+0

啊,明白了。謝謝! – Americo