将字符串转换为 angularjs 转发器中输入日期的日期

Convert string to date on an input date inside an angularjs repeater

我有一个带有 table 行的中继器,其中有一个可以编辑的日期。问题是我无法使用字符串而不是日期对象设置模型,并且无法对日期输入应用过滤器。这可能是这里的解决方法?

谢谢

<tr data-ng-repeat="item in collection">
    <td data-ng-bind="item.name"></td>
    <td data-ng-bind="item.sharedDate | date:'MMMM dd, yyyy'"></td>
    <td>
        <span data-ng-bind="item.note"></span>
        <textarea data-ng-model="item.note"></textarea>
    </td>
    <td>
        <span data-ng-bind="item.expiryDate | date:'MMMM dd, yyyy'"></span>
        <input type="date" class="form-control" id="expiryDate" data-ng-model="(item.expiryDate | date:'MM/dd/yyyy')">
    </td>

data-ng-model2 向数据绑定,您不能使用表达式。它必须引用范围变量,以便 ngModel 可以读写。

如果 item.expiryDate 的值与 ngModel 的格式不正确,那么您必须在控制器中对其进行预处理,然后再将其用于模板中。

您需要先在控制器或指令中执行类似的操作。

_.each($scope.collection,function(item) { item.expiryDate = $filter('date')('MM/dd/yyyy'));

现在在您的模板中,您可以使用 ngModel 作为该值的双向数据绑定。

<input type="date" class="form-control" id="expiryDate" data-ng-model="item.expiryDate">