这里主要是避免加载index.html中的所有JavaScript
例如)我有日期选择器的部分视图。初始化将在局部视图侧进行。
<script>
$(function() {
$('.date-pick').datePicker();
});
</script>
当通过路由器加载局部视图时,不会执行上述脚本。如何在angularjs局部视图中执行这些内部javascript?
答案 0 :(得分:5)
Angular会解析DOM,所以如果你把一个脚本标签放在里面,这显然不会起作用。您应该为日期选择器创建一个指令,并在部分视图中使用该指令,如<div date-picker>
。或者你可以在控制器中添加这段JavaScript,但我不推荐它。一旦习惯了,创建指令非常容易。您的日期选择器已经可以作为指令使用。在Google上进行搜索。
答案 1 :(得分:2)
谢谢Erik Duindam。
创建angularjs指令,如下所示
// Directive for jQuery datepicker intialization
app.directive('jqueryDatepicker', function () {
return {
restrict: 'A',
link: function (scope, element, attr) {
$('.date-pick').datePicker();
}
}
});
在部分视图html文件中,我使用了创建指令
<input name="date1" jquery-datepicker id="date1" class="date-pick"/>
现在jQuery日期选择器在局部视图中初始化。工作得很好!