2016-05-24 38 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