angularjs局部视图内部的javascript无法正常工作?

时间:2015-01-06 12:00:13

标签: javascript jquery angularjs datepicker

这里主要是避免加载index.html中的所有JavaScript

例如)我有日期选择器的部分视图。初始化将在局部视图侧进行。

<script>
$(function() {
   $('.date-pick').datePicker();
});
</script>

当通过路由器加载局部视图时,不会执行上述脚本。如何在angularjs局部视图中执行这些内部javascript?

2 个答案:

答案 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日期选择器在局部视图中初始化。工作得很好!