仅将 AngularJS 用于路由目的

2023-12-04

我刚刚被分配了一个完全用 jQuery 制作的网站。它异步加载几个页面,并且想成为一个SPA。

现在唯一的问题是开发人员没有考虑一般的 URL,人们无法通过 www.example.com 以外的任何其他方式访问该网站

我对 AngularJS 有一点了解,我的问题是: - 是否值得集成 AngularJS 来管理路由,这样我就不必通过 jQuery 并检查每次点击,然后检查每个链接?

Thanks


当然,您可以使用 AngularJs 来进行路由。

Angular 和 jquery 停止协同工作的地方是,您无法在 Angular 指令中生成的视图上使用 jquery 选择,因为 jquery 不会选择运行时生成的视图。

要监视 AngularJS 何时完成 DOM 操作,请在 Angular 控制器中使用它来调用jqueryStartWork方法,它应该启动 jquery 的工作。

function stuffController($scope) {
$scope.$on('$viewContentLoaded', jqueryStartWork);
}

对于某些 angularjs 指令渲染监视器,您可以有一个指令,当 Angular 完成该指令的 dom 操作时,该指令将触发事件。 例如,要监视 ng-repeat,为了渲染完成,请添加此指令

var app = angular.module('myapp', [])
.directive('onFinishRender', function ($timeout) {
return {
    restrict: 'A',
    link: function (scope, element, attr) {
        if (scope.$last === true) {
            $timeout(function () {
                scope.$emit('ngRepeatFinished');
            });
        }
    }
}
});

然后在控制器中添加一个新函数,该函数将在 ng-repeat 完成时调用,如下所示。

$scope.$on('ngRepeatFinished', function (ngRepeatFinishedEvent) {
    //you also get the actual event object
    //do stuff, execute functions -- whatever...
    alert("ng-repeat finished");
});

但不要忘记将此指令添加到您的 ng-repeat 标记中,如下所示

<tr data-ng-repeat="product in products" on-finish-render>

[EDIT]今天我一直在尝试在 md-tab 的 div 中运行一个简单的 D3 svg 附加脚本。我遇到了在控制器完成(md-tab 也完成)渲染所有内容后绘制它的问题。我发现如果你使用 $timeout(windows.setTimeout 的包装)它将向浏览器的事件队列添加一个新事件。它将在当前队列(渲染)之后和您按顺序添加的新超时事件函数之前运行。它也适用于 0ms。

 $timeout(drawTree, 0); //drawTree is a function to get #tree div in a md-tab and append a D3 svg
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅将 AngularJS 用于路由目的 的相关文章

随机推荐

  • 找不到经过训练的 NLU 模型(Actions on Google)

    我们正在使用 google SDK 上的 Actions 开发启动 我们迁移了我们的开发项目 UAT 突然它停止工作了 以前我们使用相同的方法并且每次都有效 机器人对初始短语响应一次 然后停止响应 它说抱歉 机器人名称 没有响应 请稍后再试
  • 如何在 Android 上打印堆栈跟踪(带有符号函数名称)?

    这个问题已经被问过很多次了 但从未得到真正的答案 今天我花了 5 到 6 个小时尝试将一些库移植到 Android libunwind liwdfl 这些库可能从未打算在 ARM 上运行 当然 无济于事 问题是Android缺少backtr
  • 当MySql数据库中添加新记录时,使用Jquery自动更新Div

    我正在为我的朋友制作一个社交网站 我想知道当数据库中添加新记录时 如何更新包含数据库中少量插入记录的 Div 简而言之 你一定见过 Facebook 的实时通知 当有人做某事时 这些通知就会淡出 这一切都发生在没有刷新整个实时通知 div
  • 以编程方式检查 SD 卡是否可用

    我的应用程序适用于仅具有 SD 卡的手机 因此 我想以编程方式检查 SD 卡是否可用以及如何找到 SD 卡可用空间 是否可以 如果是 我该怎么做 Boolean isSDPresent android os Environment getE
  • 在 Windows 中托管 Git 存储库

    目前是否有办法在 Windows 中托管共享 Git 存储库 据我所知 您可以使用以下命令在 Linux 中配置 Git 服务 git daemon 是否有本地 Windows 选项 缺少共享文件夹 来托管 Git 服务 编辑 我目前正在使
  • 创建两列无​​序列表

    我希望制作一个类似于下面的两列无序列表 但也想知道如何整合加号的图像 我正在寻找一种没有 CSS3 优点的解决方案 以便它可以支持较旧的浏览器 这是我的网站的链接 http jobspark ca job listings 由于我正在使用
  • magento 的 NGINX-FPM 配置设置

    我正在运行一个用 magento 开发的电子商务网站 我的服务器有 512mb RAM 和 2 6 core2duo 当我在网站上一次发送 50 个请求时 除了少数请求外 它不会响应 我也安装了清漆 我想知道我想要为我的网站进行的最佳设置
  • 变异,触发器/函数可能看不到它 - 触发器执行期间出错

    CREATE OR REPLACE TRIGGER UPDATE TEST 280510 AFTER insert on TEST TRNCOMPVISIT declare V TRNCOMPNO NUMBER 10 CURSOR C1 I
  • 使用 Findbugs 编写一个检测器来搜索“System.out.println”的使用

    我正在尝试编写一个错误检测器来使用 Findbugs 查找方法调用 System out println 的实例 我知道字节码中的 System out println 被编译为对 GETSTATIC 的调用 将 System out 推入
  • android - 活动切换时意外的短暂方向变化

    我想在我的 Android 应用程序中动态设置屏幕方向 为此我使用 activity setRequestedOrientation ActivityInfo SCREEN ORIENTATION PORTRAIT 和类似的 到目前为止 效
  • 定义 Vue-Router 路由时访问 Vuex 状态

    我有以下 Vuex 商店 main js import Vue from vue import Vuex from vuex Vue use Vuex init store const store new Vuex Store state
  • Jetty 和最大内容大小

    我使用 Jetty 9 4 8 我想限制可以发布到服务器的数据量 为此 我添加到 jetty xml
  • CUDA 应用程序在几秒钟后超时并失败 - 如何解决此问题?

    我注意到 CUDA 应用程序在失败并退出之前的最大运行时间往往为 5 15 秒 我意识到最好不要让 CUDA 应用程序运行那么长时间 但假设使用 CUDA 是正确的选择 并且由于每个线程的顺序工作量必须运行那么长时间 有什么方法可以延长这个
  • VBA复制列的宽度

    下面的 VBA 代码从源数据表复制数据并将其粘贴到特定表上 但是 我还需要它来将列的宽度粘贴到源数据表上 这可能吗 谢谢你的帮助 Private Sub Worksheet Change ByVal Target As Range Dim
  • 创建进程以在新的 Windows 桌面上运行 IE

    我正在尝试设置一个 IE kiosk 在单独的桌面上运行 IE 当我测试时 我只是正常启动 IE 不是在 kiosk 模式下 但是尽管 IE 在新桌面上启动 但它不会加载命令字符串中指定的初始页面 它只是坐在那里 沙漏闪烁打开和关闭非常快
  • 无法编译 C# 默认接口方法

    C 8 0 有一个新功能 可以让您向接口上的方法添加默认实现 要么我做错了什么 要么这个功能没有像宣传的那样工作 我猜是前者 我使用以下代码创建了一个新的 NET Core 3 1 控制台应用程序 using System namespac
  • JQuery .append 标记被忽略[重复]

    这个问题在这里已经有答案了 我有以下 HTML div div
  • 使用外键作为第一个表的标识列批量插入嵌套 xml

    我有一个 xml 如下
  • 使用提交按钮时,ajax 调用不起作用

    我正在尝试使用以下 API 获取实时货币汇率 http www exchangerate api com INR USD 1 k FQRxs xT2tk NExQj 当我点击按钮时 它会提醒费率并且工作正常 我正在使用以下 Ajax 代码
  • 仅将 AngularJS 用于路由目的

    我刚刚被分配了一个完全用 jQuery 制作的网站 它异步加载几个页面 并且想成为一个SPA 现在唯一的问题是开发人员没有考虑一般的 URL 人们无法通过 www example com 以外的任何其他方式访问该网站 我对 AngularJ