当我单击“检查可用性”按钮时,日期值不会传递到控制器
<div class='input-group date'>
<input ng-model="BookedFromDate" type="text" [email protected]("dd/MM/yyyy") class="form-control BookedFDate" style="border-width: 0 0 2px 0;">
<span class="input-group-addon">
<i class="font-icon font-icon-calend"></i>
</span>
</div>
角度器:
$scope.CheckAvailability = function () {
alert("Hello, " + $scope.BookedFromDate);
};
忘记 ASP。在 AngularJS 中,输入不需要值。只需填充
ng-model
。您可以在控制器中或使用 HTML 中的 ng-init
来完成此操作。要屏蔽/过滤日期,请使用 $filter
服务。通常不会直接使用,所以我建议在ng-init
中应用过滤器。 AngularJS 有一个用于此目的的 date
过滤器。
这是一个例子:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.now = new Date();
$scope.CheckAvailability = function() {
console.log("Date:", $scope.BookedFromDate);
};
});
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<div class='input-group date'>
<input ng-model="BookedFromDate"
type="text"
ng-init="BookedFromDate = (now | date : 'dd/MM/yyyy')"
class="form-control BookedFDate"
style="border-width: 0 0 2px 0;">
<span class="input-group-addon">
<i class="font-icon font-icon-calend"></i>
</span>
<button ng-click="CheckAvailability()">Click</button>
</div>
</div>
</body>
</html>
或者将类型从
text
更改为 date
以完全忽略过滤器和屏蔽。
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.BookedFromDate = new Date();
$scope.CheckAvailability = function() {
console.log("Date:", $scope.BookedFromDate);
};
});
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<div class='input-group date'>
<input ng-model="BookedFromDate"
type="date"
class="form-control BookedFDate"
style="border-width: 0 0 2px 0;">
<span class="input-group-addon">
<i class="font-icon font-icon-calend"></i>
</span>
<button ng-click="CheckAvailability()">Click</button>
</div>
</div>
</body>
</html>
希望这段代码能有所帮助,在角度上,value标签的用处较少,因为我们以两种方式绑定值。
<body ng-app="app">
<div ng-controller="EditCtrl">
<input type="text" ng-model="item.title" />
<input type="date" ng-model="item.date" />
{{item.date}}
</div>
</body>
您的代码中似乎可能存在一些问题。首先,当使用 Razor 语法使用当前日期初始化 ng-model 时,应该使用双大括号在 AngularJS 中进行数据绑定。其次,确保 CheckAvailability 函数正确绑定到某个事件,例如单击按钮。这是代码的修改版本:
<div class='input-group date'>
<input ng-model="BookedFromDate" type="text" value="{{@DateTime.Now.ToString("dd/MM/yyyy")}}" class="form-control BookedFDate" style="border-width: 0 0 2px 0;">
<span class="input-group-addon">
<i class="font-icon font-icon-calend"></i>
</span>
</div>
<button ng-click="CheckAvailability()">Check Availability</button>
在你的控制器中:
app.controller('YourController', function($scope) {
$scope.CheckAvailability = function () {
alert("Hello, " + $scope.BookedFromDate);
};
});
确保您已在项目中包含 AngularJS,并且控制器与 HTML 的相关部分相关联。另外,请确保正确设置 ng-click 指令或其他一些事件绑定以触发 CheckAvailability 函数。