jQuery Bxslider 不适用于 NG View 中的模板
jquery bxslider is not working with templates inside ng view
我在我的第一个角度项目中使用了jquery bxslider。它不适用于 ng 视图中的模板。如果在没有ng视图的情况下使用这个意味着它正在工作。
这是我的 HTML 页面:
<!doctype html>
<html ng-app="appSathya">
<head>
<meta charset="utf-8">
<title>Modest</title>
<link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,600italic,700italic,400,600,700' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/jquery.bxslider.css">
</head>
<body>
<header ng-include='"template/header.html"'></header>
<section ng-view></section>
<script src="js/angular.js"></script>
<script src="js/angular-route.min.js"></script>
<script src="js/jquery-1.9.1.js"></script>
<script src="js/jquery.bxslider.js"></script>
<script src="js/main.js"></script>
</body>
</html>
这是我的JavaScript文件
// JavaScript Document
var app = angular.module('appSathya', ['ngRoute']);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider
// Home
.when("/", {templateUrl: "partials/home.html", controller: "PageCtrl"})
}]);
app.controller('menuController', function($scope){
$scope.menus = [
{mitem:"Home", murl:"#/link"},
{mitem:"About", murl:"#/link"},
{mitem:"Work", murl:"#/link"},
{mitem:"Team", murl:"#/link"},
{mitem:"Services", murl:"#/link"},
{mitem:"Features", murl:"#/link"},
{mitem:"contact", murl:"#/link"}
];
});
app.directive('startslider',function() {
return {
restrict: 'A',
replace: true,
template: '<ul class="bxslider">' +
'<li ng-repeat="picture in pictures">' +
'<img ng-src="{{picture.src}}" alt="" />' +
'</li>' +
'</ul>',
link: function(scope, elm, attrs) {
elm.ready(function() {
$("." + $(elm[0]).attr('class')).bxSlider({
mode: 'fade',
pager: false,
autoControls: true
});
});
}
};
});
app.controller('PageCtrl', function($scope) {
$scope.pictures = [
{src:'img/banner.jpg' },
{src:'img/banner.jpg' },
{src:'img/banner.jpg' }
];
});
更改脚本的顺序如下:
<script src="js/jquery-1.9.1.js"></script>
<script src="js/angular.js"></script>
您的代码可能出现故障的原因 Angular 有自己的 JQLITE 版本并剥离了某些命名空间和属性......但是如果你改变顺序,Angular 有一个函数可以识别 jQuery 调用是否取代 Angular 版本。
如果你只需要在 Angular 中使用一个 jQuery 插件,那么jQuery Passthrough 指令应该这样做。
首先在AngularJS之前包含JQuery,然后在jquery代码中使用jQuery而不是$,因为angular也使用$。
您是否尝试过将脚本 src 链接放在标题中?当然,有时需要将它们放在页脚中,但如果您希望它们先触发,请按顺序运行。查看代码,我建议将<script src="js/jquery-1.9.1.js"></script><script src="js/jquery.bxslider.js"></script>
标签放在头部?
相关文章:
- 如何为通过ng-view指令或ng-controller指令创建的每个新作用域设置侦听器
- ng-view 中的脚本在从文件引用时不起作用(JQuery 在角度之前加载)
- ng-animate 当 ng-view 通过路由更新时
- ng-view 无法呈现
- 在 $location.path() 更改后的另一个 ng-view 中触发事件
- 在AngularJs中无法加载ng-view
- AngularJS 1.3 - 错误:错误:modulerr 模块错误(使用 ng-view,$routeProvide
- 在路由配置中定义 AngularJS 中的 ng-view 动画
- AngularJS无法从ng-view访问ng-click
- angularjs ng-view - jQuery 插件问题 - 需要建议
- ng-view - 模板页面中的加载控制器
- ng-view在AngularJS中不起作用
- Defining ng-view="NAME" from RouteProvider
- 引导切换复选框在 ng-view 中不起作用
- .js没有应用于ng-view
- AngularJs ng-view来更改父控制器的值
- jQuery Bxslider 不适用于 NG View 中的模板
- 适用于 ngRoute、ng-view 和代码复制的最佳实践
- 带有引导 3 手风琴的 AngularJS 在通过 ng-view 包含时不起作用.
- Angular加载视图时的js - ng-view - ng-route - condition