对于背景,我使用angular以及bootstrap datetime picker
我的问题似乎是我的角度绑定在一个方向上工作,而不是另一个方向。我先来提供一些相关的示例代码。
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,但是当我尝试更改它时,更改不会传播到父作用域?
但是,我没有写任何控制器来做这样的事情,所以我有点难过。
我很乐意回答任何后续问题或发布更多代码,但我认为这是我可以提出的最容易解决的问题。
请有人帮我解决我的范围问题。我觉得这种问题偶尔会出现在我身上,所以我也会非常感谢你的解释。
由于