首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用jQuery时使用Angular.js插件

如何在使用jQuery时使用Angular.js插件
EN

Stack Overflow用户
提问于 2015-09-20 17:18:22
回答 1查看 4.7K关注 0票数 2

我一直在试图在使用jQuery时如何使用Angular.js插件,现在我使用的是角1.4,我有以下一些问题:

  • 当我使用插件时,我可以使用jQuery版本吗?
  • 我什么时候需要使用另一个版本的jQuery当使用角?
  • 在使用不同版本的jQuery时有什么后果吗?
  • 我怎么知道最新支持的jQuery版本是什么?
  • 当引用我首先加载的html中的库时,是角还是jQuery?

到目前为止,我发现的是这些例子/教程:

但我不明白的是如何从角度分辨jquery属性,我的意思是:

假设我想使用漏电卷轴插件,当只使用jquery代码时如下所示:

标准JQuery方法

HTML:

代码语言:javascript
复制
<div class="main">
    <section class="page1">
        <div class="page_container">
            <h1>One Page Scroll</h1>

            <h2>Create an Apple-like one page scroller website (iPhone 5S website) with One Page Scroll plugin</h2>

            <div class="btns"><a class="reload btn" href="https://github.com/peachananr/onepage-scroll">Download on
                Github</a>

            </div>
        </div>
        <img src="phones.png" alt="phones">
    </section>
    <section class="page2">
        <div class="page_container">
            <h1>Ready-to-use plugin</h1>

            <h2>All you need is an HTML markup, call the script and BAM!</h2>

            <div class="btns"><a class="reload btn" href="https://github.com/peachananr/onepage-scroll">Download on
                Github</a>

            </div>
        </div>
    </section>
</div>

JS:

代码语言:javascript
复制
$(document).ready(function() {
    $( ".main" ).onepage_scroll( {//These are the properties i talk about
        sectionContainer: "section",
        responsiveFallback: 600,
        loop: true
    } )
});

将jquery代码转换为ng指令的角度是什么?

我知道我要做的是:

角方式

JS:

代码语言:javascript
复制
(function () {
    'use strict';

    angular
        .module( 'app.layout' )
        .directive( 'jqOnepageScroll', jqOnepageScroll );

    function jqOnepageScroll() {
        return {
            restrict: 'A',
            link: function ( scope, element, attrs ) {

                $( element ).onepage_scroll( scope.$eval( attrs.jqOnepageScroll ) );

            }
        };
    }

})();

HTML:

代码语言:javascript
复制
<div class="main"
     jq-onepage-scroll="{
             sectionContainer: 'section', 
             responsiveFallback: 600, 
             loop: true
         }">
    <section class="page1">
        ...
    </section>
    <section class="page2">
        ...
    </section>
</div>

但我不明白的是这是怎么回事:$( ".main" ).onepage_scroll?我理解它的角度是这样的:$( element ).onepage_scroll,但是这段代码表示显式元素,我如何告诉类main

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-20 17:31:49

您的指令方法接近目标,但是它缺少函数参数。

此外,链接函数的element参数将已经是一个jQuery对象,因此不需要再次将其包装在$()中。

当元素对象可用时,不需要指定元素类。

代码语言:javascript
复制
angular
    .module( 'app.layout' )
    .directive( 'jqOnepageScroll', jqOnepageScroll );//forgot function arg

function jqOnepageScroll() {
    return {
        restrict: 'A',
        link: function ( scope, element, attrs ) {
            // unwrap $(element)
            element.onepage_scroll( scope.$eval( attrs.jqOnepageScroll ) );

        }
    };
}

就jQuery版本而言,angular不包括jQuery,因此在 angular.js脚本标记之前包含的任何版本都会被使用。请参阅angular.element文档

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32682145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档