jquery 可以将turn.js与cdn文件集成到Angular项目中吗?

cidc1ykv  于 2023-08-04  发布在  jQuery
关注(0)|答案(1)|浏览(114)

我正在一个Angular项目中工作,我想添加turn.js库来做一个翻页书,它已经完成了集成。x1c 0d1x的数据
但是如果我试图进入书的下一页,它会显示下一页,但书会像图中一样进入他的第一个位置,我还想在URL中添加从这个http://localhost:4200/#/到这个http://localhost:4200/#/page-1,然后到http://localhost:4200/#/非常快。
在控制台中显示以下错误:



下面是hash.js文件:

(function() {

'use strict';

var hashes = {},
    regexp = {},
    history = [],
    freq = 100,
    num = 0,
    pushState = false,
    timer = null,
    currentUrl = null,

    freeze = function(obj) {
        if (Object.freeze) return Object.freeze(obj);
        return obj;
    },

    getHashParts = function() {
        return window.location.href.split('#');
    },

    startTimer = function() {
        
        if (!timer)
            timer = setInterval(function() {
                if (num>0 && currentUrl!=window.location.href) {
                    currentUrl = window.location.href;
                    window.Hash.check();
                }
            }, freq);

    },

    stopTimer = function() {

        if (timer) {
            clearInterval(timer);
            timer = null;
        }

    };

window.Hash = freeze({

        pushState: function(yes) {

            if (window.history && window.history.pushState)
                pushState = yes;

            return this;
        },

        fragment: function() {
            
            var hash = getHashParts();
            return (pushState) ?
                window.location.pathname + ((hash[1]) ? '#' + hash[1] : '')
                : hash[1] || '';

        },
        
        get: function(path, params) {
            
            var p, fragment = '', parameters = [];

            for(p in params) {
                if (!Object.prototype.hasOwnProperty(p))
                    continue;
                parameters.push(encodeURIComponent(p) + '=' + encodeURIComponent(params[p]));
            }

            if (parameters.length>0)
                parameters = '?' + parameters.join('&');
        
            return (pushState) ? path + parameters :
                getHashParts()[0] + '#' + path + parameters;

        },

        go: function(hash, params) {

            if (this.fragment()!=hash) {
                var to = this.get(hash, params);

                if (pushState)
                    window.history.pushState(null, document.title, to);
                else
                    window.location.href = to;
                }
            
            return this;
        },

        update: function () {
            
            currentUrl = window.location.href;
            return this;

        },

        on: function(hash, callback, title) {

            if (!hashes[hash])
                hashes[hash] = {title: title, listeners: []};
            
            hashes[hash].listeners.push(callback);
            num++;
            startTimer();

            return this;
        },

        check: function() {

            var i,
                hash,
                parts,
                fragment = this.fragment();

            for (hash in hashes) {
                if (!Object.prototype.hasOwnProperty.call(hashes, hash))
                    continue;

                hashes[hash].regexp = hashes[hash].regexp || new RegExp(hash);

                if ((parts = hashes[hash].regexp.exec(fragment))) {
                    if (hashes[hash].title)
                        document.title = hashes[hash].title;

                    for (i = 0; i<hashes[hash].listeners.length; i++)
                        if (hashes[hash].listeners[i].yep)
                            hashes[hash].listeners[i].yep(fragment, parts);
                } else {
                    for (i = 0; i<hashes[hash].listeners.length; i++)
                        if (hashes[hash].listeners[i].nop)
                            hashes[hash].listeners[i].nop(fragment);
                }

            }

            return this;
        }
});

})();

字符串

eoigrqb6

eoigrqb61#

Angular需要完全控制你的应用程序。不要使用jQuery以任何方式修改DOM,因为Angular不会知道它。
路由也是如此。显然你已经安装了angular-router,看起来你试图使用一些非angular代码来修改route/URL。这不会与Angular一起工作。
你需要以完全Angular的方式来实现这一点,或者根本不使用Angular。永远不要混淆这些概念

相关问题