【问题标题】:Internal javascript inside angularjs partial view is not working?angularjs局部视图中的内部javascript不起作用?
【发布时间】:2015-01-06 12:00:12
【问题描述】:
这里主要是避免在 index.html 中加载所有 JavaScript
例如)我对日期选择器有部分视图。初始化将在局部视图侧。
<script>
$(function() {
$('.date-pick').datePicker();
});
</script>
当部分视图通过路由器加载时,上述脚本将不会被执行。如何在 angularjs 局部视图中执行这些内部 javascript?
【问题讨论】:
标签:
javascript
jquery
angularjs
datepicker
【解决方案1】:
Angular 会解析 DOM,所以如果你在里面放一个 script 标签,这显然是行不通的。您应该为您的日期选择器创建一个指令,并在部分视图中使用该指令,例如<div date-picker>。或者,您可以在控制器中添加这段 JavaScript,但我不推荐它。一旦习惯了,创建指令就非常容易。您的日期选择器可能已经作为指令可用。对其进行 Google 搜索。
【解决方案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 日期选择器在局部视图中初始化。工作得很好!