我的问题似乎是我的角度绑定在一个方向上工作,但不是另一个方向。让我首先提供一些相关的示例代码。
html
<!-- all of this falls under the scope of the angular controller I will show below -->
<!-- the actual date time picker -->
<div class="form-group">
<label for="datetimepicker1"> Start </label>
<div class='input-group date' id='datetimepicker1'>
<input type='text' class="form-control" ng-model="start"/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<!-- initializes the datetime picker using Jquery I am assuming -->
<script type="text/javascript">
$(function () {
$('#datetimepicker1').datetimepicker();
});
</script>
<!-- submit button -->
<div class= "form-group form-group-sm">
<button class= "btn btn-primary" ng-click= "submit">
Submit
</button>
</div>
javascript
// inside my relevant angular controller
alert('this works'); // this fires, so I know at least this much is hooked up
$scope.start = moment.subtract(7, 'days').toDate();
$scope.submit = function() {
alert($scope.start);
}
现在我已经展示了我的相关代码,这是我的问题。当我启动我的应用程序时,一旦控制器代码运行,DOM 上的日期时间选择器的输入字段就会按照我的预期填充。它采用适当的 $scope.start 值,一切都很好。
但是,绑定似乎不会以相反的方向工作。例如,当我更改日期然后单击“提交”按钮时,会弹出一个警报,但它会显示 $scope.start 的先前值
似乎更改 DOM 上的字段并没有改变 ng-model (或任何角度术语)
在某种程度上,这是有道理的。我怀疑还有另一个控制器在以某种方式在起作用...... ng-model 从父范围继承 $scope.start ,但是当我尝试更改它时,更改不会传播到父范围?
但是,我还没有编写任何控制器来做这样的事情,所以我有点难过。
我很乐意回答任何后续问题或发布更多代码,但我认为这是我可以提出我的问题的最容易理解的内容。
请有人帮我解决我的范围问题。我觉得这种问题不时出现在我的角度,所以解释也将不胜感激。
谢谢