这很奇怪,我不知道如何解决这个问题......
我的控制器使用带有promise的服务进行ajax调用,效果很好。
horariosOcupadosService.getHorariosOcupados($scope.formData.cmbUnidade, $scope.formData.cmbDiaSemana).then(function(response) {
//when I set my variable with the result, everything is fine
//and I can iterate with ng-repeat with no problem
$scope.horariosOcupados = response;
$scope.formData.qtdeHorarios = $scope.horariosOcupados.length;
}), function(error) {
console.log(response);
};
但在我的HTML中,我有一个问题...在我的ng-repeat之后,如果我尝试打印$ scope.horariosOcupados(
{{ horariosOcupados | json }}),它会正常工作,它会打印:< p>
[{},{},{}]
如果我更改ng-model字段的值,它只会显示一些内容。
<div id="horarios">
<div ng-repeat="horarioOcupado in horariosOcupados track by $index" id="horario{{$index}}" class="form-group" style="margin: 15px; 0px;">
<div class="col-md-2 text-center" id="remove"><a ng-href="#" ng-click="removeHorario($index)"><i class="fa fa-trash-o fa-2x"></i></a></div>
<div class="col-md-3">
<div class="input-group">
<span class="input-group-addon">Horário inicial</span><input name="hrEntra{{$index}}" type="text" ng-model="horariosOcupados[$index].hrInicial">
</div>
</div>
</div>
</div>
<!-- GRADE DE HORÁRIOS - FIM -->
<pre>{{ horariosOcupados | json }}</pre>
有人能帮我解决一下吗?
谢谢!
答案 0 :(得分:0)
你可能正在做一些角度世界之外的事情。 你如何异步获取数据? 除了角度内置的$ http服务之外,您是否可以使用ajax调用?或者使用“普通”setTimeout函数而不是使用angular $ timeout版本? 我的猜测是,你不知不觉地以异步方式得到它而不会留在角度世界中。因此,angular对这些更改一无所知,也不会及时更新视图。
目前你可以做的是尝试
$scope.horariosOcupados = response;
$scope.formData.qtdeHorarios = $scope.horariosOcupados.length;
$scope.$apply();
“告诉”角度某些东西已经改变,因此角度会立即重新渲染变化。 理想的是,如果你留在角度世界并且使用角度内置服务,那么大部分时间都没有必要这样做
答案 1 :(得分:0)
我明白了。问题是我的INPUT字段的最大长度。 &#34; 1900-01-01 08:00&#34; &GT; 5,所以angularJS将其设置为undefined。
谢谢大家的帮助!