0

对于背景,我使用angular以及引导日期时间选择器

我的问题似乎是我的角度绑定在一个方向上工作,但不是另一个方向。让我首先提供一些相关的示例代码。

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 ,但是当我尝试更改它时,更改不会传播到父范围?

但是,我还没有编写任何控制器来做这样的事情,所以我有点难过。

我很乐意回答任何后续问题或发布更多代码,但我认为这是我可以提出我的问题的最容易理解的内容。

请有人帮我解决我的范围问题。我觉得这种问题不时出现在我的角度,所以解释也将不胜感激。

谢谢

4

0 回答 0