Jquery 使用Bootstrap';带ControllerAs语法的s日期选择器

Jquery 使用Bootstrap';带ControllerAs语法的s日期选择器,jquery,angularjs,twitter-bootstrap,datepicker,Jquery,Angularjs,Twitter Bootstrap,Datepicker,当我尝试在使用controllerAs语法的Angular控制器中使用Bootstrap的日期选择器时,以下代码不起作用: $("#endDatePicker").datetimepicker({format: 'DD/MM/YY'}).on('dp.change', function (e) { alert(1); vm.project.endDateFormatted = e.date.format('DD/MM/YY'); vm.project.endDate =

当我尝试在使用
controllerAs
语法的Angular控制器中使用Bootstrap的日期选择器时,以下代码不起作用:

$("#endDatePicker").datetimepicker({format: 'DD/MM/YY'}).on('dp.change', function (e) {
    alert(1);
    vm.project.endDateFormatted = e.date.format('DD/MM/YY');
    vm.project.endDate = e.date.unix();
});
测试警报从未发生,datepicker在我的视图中根本不起作用,因此以下标记不起任何作用:

<div class="input-group date" id="startDatePicker">
    <input type="text" class="form-control" name="startDatePicker" ng-model="vm.startDateFormatted" placeholder="Project Start Date" aria-describedby="basic-addon2" required/>
    <span class="input-group-addon">
        <i class="fa fa-calendar"></i>
    </span>
</div>

但是,如果在使用标准
$scope
语法的控制器中执行完全相同的操作,则日期选择器工作正常

经过进一步调查,我发现在控制器的
activate()
中选择#startDatePicker会产生以下结果:

我的控制器似乎找不到具有
id
的元素,这与我使用
controllerAs
语法这一事实有关


如何在不切换到
$scope
语法的情况下解决此问题?

它将无法按预期工作,因为您将jQuery与Angular一起使用。但为什么它与$scope一起工作?在这个控制器中切换到$scope语法是我唯一的机会吗?它不能很好地处理scope。您不应该在控制器中依赖DOM。指令是正确执行的方法。