如何让我的双重绑定与bootstrap日期时间选择器一起正常工作?

时间:2016-01-13 23:06:55

标签: angularjs binding model angularjs-scope eonasdan-datetimepicker

对于背景,我使用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,但是当我尝试更改它时,更改不会传播到父作用域?

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

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

请有人帮我解决我的范围问题。我觉得这种问题偶尔会出现在我身上,所以我也会非常感谢你的解释。

由于

0 个答案:

没有答案