如何从 Angular 工厂向日期选择器添加值?
How do you add a value to datepicker from an Angular Factory?
我有一个 Angular 工厂,它从我的 spring 应用程序的后端获取单个日期,我想将它添加到输入中,以便日历输入始终设置日期从后端获取,用户无法更改它。我怎么能做到这一点?我应该把它放在我的控制器上还是直接放在按钮上?这是我的代码:
Factory(与其他 .factory 连接):
.factory('DataInizioGeneraCalendario', function ($resource) {
return $resource('rest/anagrafica/dataInizioGeneraCalendario', {
get: {
method: 'GET'
}
});
控制器函数:
$scope.generaCalendario = function () {
$scope.modificaCalendarioDiv = true;
$scope.successMessage = false;
$("#idModificaCalendarioDiv").hide();
$scope.element = new Calendario();
autoScroll('generaCalendario');
$("#idErrorTemplate").hide();
$('#data').attr('disabled', false);
$("#idGeneraCalendarioDiv").show();
};
输入:
<div class="col-xs-12 col-md-2" >
<label for="dataInizio" class="row col-xs-12 control-label" style="text-align: left">da Data</label>
<input class="datepicker form-control" placeholder="gg/mm/aaaa" required type="text" id="data" ng-disabled="true" />
</div>
编辑:忘记添加,控制器函数由显示日历输入的按钮调用。
因为你的工厂的 GET 请求将 return 异步日期值,所以最好在你的控制器中有一个 $scope.date
来保存从 return 编辑的日期值服务器。此外,根据您在后端存储日期的格式,您可能需要将后端 returned 的值转换为 string 格式,因此它<input type="date">
会根据 Angular docs.
正确使用
在您的代码中,您需要将输入元素绑定到该值,如下所示:<input ng-model="date">
。
它将做的是将此输入绑定到数据模型,以便每次用户编辑输入时 $scope.date
也会更新。
如果您不希望用户能够编辑此日期,那么您需要:
保持输入字段禁用<input disabled>
(这里不需要使用ng-disabled
,因为你想让它一直处于禁用状态)。并删除此行: $('#data').attr('disabled', false);
在你的函数中。
你是单向绑定,而不是双向绑定,像这样:<input disabled ng-value="date">
这是显示两个输入的工作 DEMO:一个可编辑,另一个不可编辑。
我有一个 Angular 工厂,它从我的 spring 应用程序的后端获取单个日期,我想将它添加到输入中,以便日历输入始终设置日期从后端获取,用户无法更改它。我怎么能做到这一点?我应该把它放在我的控制器上还是直接放在按钮上?这是我的代码:
Factory(与其他 .factory 连接):
.factory('DataInizioGeneraCalendario', function ($resource) {
return $resource('rest/anagrafica/dataInizioGeneraCalendario', {
get: {
method: 'GET'
}
});
控制器函数:
$scope.generaCalendario = function () {
$scope.modificaCalendarioDiv = true;
$scope.successMessage = false;
$("#idModificaCalendarioDiv").hide();
$scope.element = new Calendario();
autoScroll('generaCalendario');
$("#idErrorTemplate").hide();
$('#data').attr('disabled', false);
$("#idGeneraCalendarioDiv").show();
};
输入:
<div class="col-xs-12 col-md-2" >
<label for="dataInizio" class="row col-xs-12 control-label" style="text-align: left">da Data</label>
<input class="datepicker form-control" placeholder="gg/mm/aaaa" required type="text" id="data" ng-disabled="true" />
</div>
编辑:忘记添加,控制器函数由显示日历输入的按钮调用。
因为你的工厂的 GET 请求将 return 异步日期值,所以最好在你的控制器中有一个 $scope.date
来保存从 return 编辑的日期值服务器。此外,根据您在后端存储日期的格式,您可能需要将后端 returned 的值转换为 string 格式,因此它<input type="date">
会根据 Angular docs.
在您的代码中,您需要将输入元素绑定到该值,如下所示:<input ng-model="date">
。
它将做的是将此输入绑定到数据模型,以便每次用户编辑输入时 $scope.date
也会更新。
如果您不希望用户能够编辑此日期,那么您需要:
保持输入字段禁用
<input disabled>
(这里不需要使用ng-disabled
,因为你想让它一直处于禁用状态)。并删除此行:$('#data').attr('disabled', false);
在你的函数中。你是单向绑定,而不是双向绑定,像这样:
<input disabled ng-value="date">
这是显示两个输入的工作 DEMO:一个可编辑,另一个不可编辑。