Javascript 如何让Angular.js与其他库一起工作?
我正在建一个水疗中心;我正处于合并路线/模板的位置。它大部分工作正常,但两个插件似乎不工作,我怀疑是由于我的集成 #1 当页面最初加载时,我的flexSlider工作正常。但当我点击返回flexslider页面时,滑块不会再次启动。控制台中没有错误 这是滑块实现:Javascript 如何让Angular.js与其他库一起工作?,javascript,html,angularjs,Javascript,Html,Angularjs,我正在建一个水疗中心;我正处于合并路线/模板的位置。它大部分工作正常,但两个插件似乎不工作,我怀疑是由于我的集成 #1 当页面最初加载时,我的flexSlider工作正常。但当我点击返回flexslider页面时,滑块不会再次启动。控制台中没有错误 这是滑块实现: $(window).load(function() { $('.flexslider').flexslider({ pauseOnHover: true, randomize: true,
$(window).load(function() {
$('.flexslider').flexslider({
pauseOnHover: true,
randomize: true,
animation: "slide"
});
});
这是我的角度文件脚本:
var rustyApp = angular.module('rustyApp', [
'ngRoute',
'viewController'
]);
rustyApp.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/home', {
templateUrl: 'partials/home.html',
controller: 'HomeController'
})
.when('/work', {
templateUrl: 'partials/work.html',
controller: 'WorkController'
})
.when('/contact', {
templateUrl: 'partials/contact.html',
controller: 'ContactController'
})
.otherwise({
redirectTo: '/home'
})
}]);
var viewController = angular.module('viewController', []);
rustyApp.controller('HomeController', function($scope) {});
rustyApp.controller('WorkController', function($scope) {});
rustyApp.controller('ContactController', function($scope) {});
#2我正在为手机使用非画布导航。当我点击相应页面的链接时,我会得到不同的模板/视图,但侧面板不会关闭
<aside class="left-off-canvas-menu">
<ul class=" off-canvas-list">
<li class="uk-active"><a href="#home"><i class="uk-icon-home"></i>home</a></li>
<li><a href="#work"><i class="uk-icon-photo"></i> work</a></li>
<li><a href="#contact"><i class="uk-icon-envelope-o"></i> contact</a></li>
</ul>
</aside>
#3
正如您现在看到的,它显示的是/#/home
,不应该是index.html/home
提前感谢AnJS是一种单页方法。因此,没有真正的页面重新加载。
/#/home
是正确的,它只是一种通过锚定表达导航的AnJS方式
通常,如果您想与AnJS“world”/scope通信,必须通过$apply函数:
$rootScope.$apply(函数(){/*此处的代码*/)})代码>
因为否则AnJS不会注意到你的变化
希望这会有所帮助。您需要了解AngularJs的工作原理,通常需要了解AngularJs组件的生命周期。我正在尝试:
Q1。大多数情况下,Angular不能很好地与其他非Angular javascript文件配合使用。单击返回(或刷新)到另一页后,flexi代码无法工作的主要原因是AngularJs不知道flexi代码的存在
Angular的工作原理当你的HTML文件被加载(连同它必需的JS文件)时,Angular将开始启动,添加必需的观察程序,然后重新加载整个HTML文件。那么,为什么您的flexi代码无法工作?因为Angular从不观察它,因此从不消化它,因此它完全忽略了您的flexi代码。它第一次有效,但第二次无效
要解决这个问题,要么你为flexi找到一个角度友好的替代方案(我很确定还有很多),要么你需要编写自己的全局变量来同步flexi和angular上的资源
这对我帮助很大,希望对你也有帮助
Q2。不知道这里的确切问题是什么。但是从我在这里看到的情况来看,也许您需要在控制器中显式地编写close canvas代码?如果没有负责的管制员
,则需要在ngRoute
中处理,即在过渡到下一个状态之前关闭导航栏
Q3。添加$locationProvider.html5Mode(true)
进入模块配置文件,就可以开始了
希望这些有帮助:D我刚刚有了一个想法。当我把这个推到PROD时,URL看起来不是像example.com/#/home
?这并不漂亮,但我可以接受:)谢谢!去看这篇文章。。我不知道下面的内容是否有效,但我相信就像你的帖子一样,它指向了正确的方向。谢谢你的反馈,这对我从一个角度思考这个问题有很大的帮助!这是个好消息!现在,您需要做的就是注入该模块,并像使用魔法咒语一样开始使用它!:)