问题标签 [angularjs-1.7]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3878 浏览

angularjs - AngularJS -$compileProvider.preAssignBindingsEnabled 不是函数

尝试gulp serve在我的 AngularJS(版本 1.6.10)应用程序上执行操作时收到以下错误消息:

调用代码如下所示:

类似的搜索似乎坚持认为这是一个版本差异。对这个问题的类似搜索似乎也表明角度模拟的版本控制存在问题,但是我们根本没有使用角度模拟。我已经尝试将我的 Angular 降级到 1.5.5,其他搜索表明你不能超过 - 尽管我所有的同事都在 Angular 1.6.10 或更高版本上运行它。我也尝试使用 npm 安装 angular-mocks,尽管没有使用,并同步版本以匹配我们的 Angular,但无济于事。我真的不知道该怎么做,也不知道实际发生了什么,为什么找不到那个功能?

编辑:我还检查了浏览器,通过运行搜索使用控制台进行angular.version搜索 - 尽管我重做gulp build并且gulp inject serve在 npm 安装旧版本之后,它还是将 1.7.2 作为我的 Angular 版本。似乎没有正确选择正确的版本 - 我是否缺少某些东西来强制执行降级的安装?

0 投票
1 回答
2630 浏览

angularjs - 何时使用 AngularJS `$onInit` Life-Cycle Hook

随着 AngularJS V1.7 的发布,预先分配绑定到的选项已被弃用和删除:

由于38f8c9构造函数中不再提供指令绑定

要迁移您的代码:

  • 如果您指定$compileProvider.preAssignBindingsEnabled(true),您需要首先迁移您的代码,以便可以将标志翻转为false. “从 1.5 迁移到 1.6”指南中提供了有关如何执行此操作的说明 。之后,删除该$compileProvider.preAssignBindingsEnabled(true)语句。

AngularJS 开发者指南 - 迁移到 V1.7 - 编译

由于bcd0d4,默认情况下禁用控制器实例上的预分配绑定。 我们强烈建议尽快迁移您的应用程序以使其不再依赖它。

依赖于存在绑定的初始化逻辑应该放在控制器的$onInit()方法中,保证总是在绑定分配后调用。

AngularJS 开发人员指南 - 从 v1.5 迁移到 v1.6 - $compile

当代码必须移动到$onInitLife-Cycle Hook时,有哪些用例?我们什么时候可以将代码留在控制器构造函数中?

0 投票
1 回答
1568 浏览

angularjs - Angular 1.2 和 Angular 1.6 之间触发 ng-click 和 ng-change 的顺序不同

AngularJS 1.2 和 1.6 之间发生了一些事情来反转顺序ng-clickng-change触发。

我做了一个说明来说明它:http ://plnkr.co/edit/XgbgLSuP1znhWszeyiHd?p=preview

此页面的默认设置是使用Angular 1.2.28. 在这种情况下,如果您更改示例中的单选按钮,您将看到 click 事件在 change 事件之前触发。

如果您随后切换注释以使用 Angular 1.6.10,您将看到 change 事件现在在 click 事件之前触发。

AngularJS 的开发中发生了什么导致这种情况,有没有办法在使用更新版本的 AngularJS 时保留以前的行为?

非常感谢您提供的任何帮助!

编辑:我可能应该说为什么这很重要。我希望能够在变量更改之前检查变量的值,以查看是否应允许更改。我可以ng-click在 AngularJS 1.2 上执行此操作,但因为ng-change在 AngularJS 1.6 上首先触发,所以在我决定是否应该继续之前已经进行了更改。如果您对如何使用 AngularJS 1.6 实现这一点有其他想法,我很想听听他们的意见。

0 投票
1 回答
46 浏览

javascript - Angularjs ui-router 与 Materialize-angular 问题

我想一起使用 ui-router 和 angular-materialize,但是当我想添加 angular materialize 模块时,它在控制台中显示了这个错误:

错误:[$injector:modulerr] ...

脚本.js

请告诉我我有什么问题。这是我在Plunker中的代码

0 投票
2 回答
995 浏览

angularjs - angularjs 1.7 选择下拉菜单显示了一个额外的选项值

我正在尝试在我的应用程序中将 angularjs 从 1.5 迁移到 1.7。

我的模型数据如下:

的HTML:

由于是一个空字符串,因此 angular在下拉列表中$scope.myColor呈现了一个额外的内容,如下所示。<option value="?"></option>

有什么方法可以避免显示<option value="?"></option>并将其默认为<option value="">--choose color --</option>$scope.myColor值?

它在 angular 1.5 下按预期工作。

这是 plunker:https ://plnkr.co/edit/g0rVjBpM2qLrGuweP19E?p=preview

编辑:@FDavidov、@Houssein、@Aleksey 建议我$scope.myColor = null在以下答案中使用。谢谢你。但这是我的企业应用程序代码库的一个重大变化。我试图找出是否有任何其他方法可以通过更改 html 来实现相同的效果。

0 投票
1 回答
809 浏览

javascript - 量角器:自定义 ExpectedConditions - 属性更改

我正在尝试实现自定义 ExpectedConditions 方法,该方法将等待元素属性发生变化。

这是我的解决方案:

在我的onPrepare

最后在我的测试套件中:

但它一直在说Failed: Wait timed out after 3006ms,我做错了什么,好吗?

0 投票
0 回答
44 浏览

javascript - Scrollspy 不适用于 AngularJs 单页应用程序

我知道这可能以前可能被问过,但是在整个网络中,我没有得到一个合适的工作帖子来解决我的问题。于是想到自己去问。

当我在 AngularJs(1.7.2) example-2中使用路由时,Scrollspy 概念不起作用

它在没有路由的情况下在这里工作example-1

让我详细说明我所做的和期望的:我有一个单页应用程序,其中有一个菜单部分和正文部分。当正文部分在需要菜单项中滚动时,将根据位置自动选择。在示例 1 中:菜单和正文都在同一页面中,示例正在运行。但在示例 2 中:当我从另一个视图加载正文的内容时,菜单自动选择不起作用。

如果你们中的任何人能指出我解决这个问题的正确方向,那就太好了。

0 投票
1 回答
22 浏览

javascript - 量角器:模拟 angularjs 属性

我有一个包含noDoubleClick属性的通用模块,我用它来防止表单按钮被意外单击两次。

但是我在使用量角器运行测试时不想要这个功能。反正有没有禁用该属性?

我试过这样,但它不起作用

0 投票
0 回答
135 浏览

angularjs - 如何使用角度权限库在 angularjs 中使用多个权限进行多次重定向?

我想要一个具有多个权限的路由,并且只有在所有权限都满足的情况下才能访问它,并且我想要为每个权限设置不同的重定向规则,如下所示:

我检查了angular-permission的文档,它提到该only选项的工作方式类似于OR.

数组运算符 OR 中的值之间用于创建替代项。如果您需要在权限之间使用 AND 运算符,请定义包含这些权限集的附加 PermRole。

我怎样才能让它工作AND

0 投票
1 回答
187 浏览

angularjs - 如何在使用角度权限库定义权限时执行异步任务

我正在使用angular-permission库以及ui-routersatellizer

以下是 的状态定义home。在那我正在检查用户是否被授权使用angular-permission


以下是权限定义loggedin

但是当我进行异步调用时,它在某种程度上不起作用。如果我isAuthenticated按照以下方式更改功能,那么它可以正常工作,但是如果令牌过期,我需要刷新令牌,否则,将用户重定向到登录页面。


来自角度许可的文档

有时您需要调用一些后端 api 或执行一些其他异步任务来检查权限是否仍然有效。为此,您可以使用 Promise 并简单地从验证函数中返回它们:

但是当我在 中使用服务时definePermission,它只是简单地通过而没有任何重定向。