设置默认时间会导致angularjs中出现绑定问题

设置默认时间会导致angularjs中出现绑定问题,angularjs,time,bind,default,Angularjs,Time,Bind,Default,我的应用程序中有一个时间输入框 <input type="time" name="time" ng-model="time" min="09:00:00" max="22:00:00" ng-change="yesorno()" required /> ... some other HTML data {{time | date: "h:mm a"}} 整个过程运行良好,数据随着我在文本框中更改时间而更改 但是,我需要为输入框设置一个默认值,通过搜索,我发现了这个方法 $scop

我的应用程序中有一个时间输入框

<input type="time" name="time" ng-model="time" 
min="09:00:00" max="22:00:00" ng-change="yesorno()" required />
... some other HTML data
{{time | date: "h:mm a"}}
整个过程运行良好,数据随着我在文本框中更改时间而更改

但是,我需要为输入框设置一个默认值,通过搜索,我发现了这个方法

$scope.time = new Date (new Date().toDateString() + ' ' + '<?php echo isset($_GET['time']) ? $_GET['time'] : '10:00'; ?>');
$scope.time=new Date(new Date().toDateString()++++);
它成功地让我在输入框中有了一个默认值,但是当我更改时间输入框时,
{time | date:“h:mm a”}
突然变为空白,并且
$scope.time
在控制台日志中没有定义


我需要一些关于如何在保留数据绑定的同时设置默认时间的建议。

为什么不在控制器上创建一个函数来返回时间?如果输入中没有一个“集合”,请返回默认时间:

function retrieveTime() {
  return $scope.time || new Date(//Your Time/Date);
}
然后,您的模板变成:

{{ retrieveTime() | date: "h:mm a" }}

我找到了解决办法

<input type="time" name="time" id="timei" value="<?php echo isset($_GET['time']) ? $_GET['time'] : '10:00'; ?>"
        min="09:00:00" max="22:00:00" onchange="bindTime()" required />
这也适用于移动浏览器

<input type="time" name="time" id="timei" value="<?php echo isset($_GET['time']) ? $_GET['time'] : '10:00'; ?>"
        min="09:00:00" max="22:00:00" onchange="bindTime()" required />
function bindTime () {
    var scope = angular.element(document.getElementById('appwrap')).scope();
    scope.time = new Date (new Date().toDateString() + ' ' + document.getElementById('timei').value);
    scope.$apply();
}