【问题标题】:Angularjs fullDate filter not workingAngularjs fullDate过滤器不起作用
【发布时间】:2015-08-24 19:26:47
【问题描述】:

在我的 html 中使用 fullDate 过滤器时出现以下错误:

错误:[ngModel:nonassign] 表达式'publisherForm.dt | 日期:'fullDate'' 是不可分配的。元素:

这是我的玉码:

datepicker.well.well-sm(ng-model="publisherForm.dt", show-weeks="false", min-date="minDate")

input.form-control(type="text", ng-model=" publisherForm.dt | date:'fullDate' ", readonly='')

我正在尝试在另一个输入字段中向用户显示从 ui-datepicker 中选择的日期。由于我只想显示日期,因此我使用了 fullDate 过滤器,但在控制台中我遇到了上述错误。

知道可能的原因是什么吗?

【问题讨论】:

  • 无法在ng-model 中使用过滤器。它的表达式必须解析为范围变量。需要创建指令来解析 $viewModel
  • 我该怎么做呢?
  • 在这里的帖子和谷歌教程、帖子等中应该不难找到众多解决方案
  • 还有其他简单的方法可以完成这项任务吗?我只需要在输入框中显示一个基于带有过滤器的 $scope 变量的值吗?有没有办法在不复杂的情况下实现这一点?

标签: javascript angularjs datepicker uidatepicker angular-ui-datepicker


【解决方案1】:

在搜索 SO 上的现有线程时,我发现以下线程帮助我解决了我的问题:

Using angularjs filter in input element How to format a date using ng-model? AngularJS get formatted date in ng-model

最后做了以下几行代码更改,它开始对我正常工作:

$scope.$watch('publisherForm.dt', function(newVal){
  $scope.publisherForm.formattedDate = $filter('date')($scope.publisherForm.dt, 'fullDate');
});

如果有人可以提出更好的解决方案,我们随时欢迎。

谢谢

【讨论】:

    猜你喜欢
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多