#javascript #angularjs
#javascript #angularjs
Вопрос:
Я пытаюсь установить выпадающий список на текущий месяц, который является октябрем, но это не работает, какие-нибудь подсказки, ребята?
http://plnkr.co/edit/qtPvCy4phNQW6I6IPQyr?p=preview
app.controller('MainCtrl', function($scope) {
var d = new Date();
var month = new Array();
var this_year = d.getFullYear();
month[0] = "January " this_year;
month[1] = "February " this_year;
month[2] = "March " this_year;
month[3] = "April " this_year;
month[4] = "May " this_year;
month[5] = "June " this_year;
month[6] = "July " this_year;
month[7] = "August " this_year;
month[8] = "September " this_year;
month[9] = "October " this_year;
month[10] = "November " this_year;
month[11] = "December " this_year;
$scope.months = month;
$scope.this_month = month[d.getMonth()] " " this_year; // won't work?
});
Ответ №1:
Вы можете установить месяц по умолчанию, присвоив текущему месяцу значение model
selected_month .
$scope.selected_month = $scope.months[d.getMonth()];
Ответ №2:
Проблема решена: ngInit использовался для установки значений по умолчанию, и вы пытались установить это, но неправильно, смотрите Этот пример, пожалуйста
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
var d = new Date();
var month = new Array();
var this_year = d.getFullYear();
month[0] = "January " this_year;
month[1] = "February " this_year;
month[2] = "March " this_year;
month[3] = "April " this_year;
month[4] = "May " this_year;
month[5] = "June " this_year;
month[6] = "July " this_year;
month[7] = "August " this_year;
month[8] = "September " this_year;
month[9] = "October " this_year;
month[10] = "November " this_year;
month[11] = "December " this_year;
$scope.months = month;
$scope.this_month = month[d.getMonth()]; // won't work?
});
<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script>document.write('<base href="' document.location '" />');</script>
<link rel="stylesheet" href="style.css" />
<script data-require="angular.js@1.0.x" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js" data-semver="1.0.7"></script>
</head>
<body ng-controller="MainCtrl">
<select style="position: relative;margin-top: -50px;" class="pull-right" ng-model="selected_month" ng-options="m for m in months" ng-init="selected_month = this_month">
</select>
</body>
</html>
Ответ №3:
Скорее всего, вы определяете функцию на контроллере и вызываете метод в ng-init. например
ng-init="this_month()"
Измените эту строку на контроллере:
$scope.this_month = month[d.getMonth()] " " this_year; // won't work?
Для:
$scope.this_month = //Change this line....
function(){
$scope.selected_month = $scope.months[d.getMonth()];
};