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。指令是正确执行的方法。