问题标签 [angularjs-digest]
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.
angularjs - 解决承诺后,角度摘要未运行
在我的角度应用程序中,我有一个具有隔离范围的指令。该指令在其作用域中获取一个字符串参数,并且由于该值可能由父作用域在异步过程中初始化 - 它还获得一个由父作用域在值准备好使用时解析的承诺。
奇怪的事情:当承诺被解决时,指令范围内的值仍然是未定义的,尽管在父控制器中它有一个值。
请参阅此 plunker,了解我的体验示例: https ://plnkr.co/edit/WLILKaO95xWwU2RF29oX?p=preview
在控制器中:
在指令中:
重要说明:如果我将“alert”代码行包装在 $timeout 块中 - scope.value 具有正确的值。解决承诺后,似乎 Angular 没有运行摘要。
有任何想法吗?
angularjs - 来自 ng-map 和 ng-repeat 的自定义标记给了我 $digest 循环错误,同时仍然正常工作
我目前使用它来获取地图上的自定义标记。
我让它在plunker上正常工作,但在我自己的网站上却没有(即使我使用的是相同的脚本 src 链接)
在我自己的页面上 ng-repeat 有效,但它给出了 2 个非常长的错误,通知我 $digest 循环
这是我的清单:
这是HTML:
以上没有给出错误,但是
做。每次我向列表中添加一个项目时,它也会给我 2 个额外的错误,但它仍然可以正常工作。
我不知道为什么它可以在 plunker 上运行,但不能在我自己的站点上运行,我使用 ASP.NET 5 提供它,使用相同的版本。在我自己的网站上还使用 ng-animate、ng-resource 和一堆与角度无关的东西,但这不重要。(我希望)
如果您需要它,我的控制器正在使用这些:
和 app 模块正在使用这个:
angularjs - 角度指令控制器和链接
我有这样的标记
显示/隐藏这个 div
和这样的指令代码
问题是,虽然事件触发并且 vm.isVisible 变化很好,但在视图 div 中没有任何反应。有什么想法吗?
angularjs - 需要将 $timeout 和 $apply 与 requestAnimationFrame 一起使用
我正在尝试使用 requestAnimationFrame 创建一个带有滚动数字的 javascript 动画
为了看到动画滚动,我需要使用 $apply 来刷新视图。这里的问题是当我开始动画时,摘要循环已经在运行,所以我的 $apply 返回错误“$apply 已经在进行中”。
寻找一个解决方案,我使用 $timeout of 0 完美工作,但我想知道是否有其他解决方案可以避免使用在性能方面不是很好的超时?
谢谢你的帮助!
html代码:
Javascript代码:
你可以在这里找到一个 CodePen
javascript - 为什么 $scope.getList() 会在 $scope.showList 的状态更改时被调用?
在下面的代码中,
$scope.getList()
$scope.showList
通过检查或取消检查更改时调用,其中$scope.showList
用作,
为什么$scope.getList()
在状态改变时被调用$scope.showList
?
类似的代码,
对我来说很有意义,因为disableButton
状态正在改变,所以按钮由于两种方式绑定而被禁用或启用。
javascript - ng-repeat 中的 Angularjs 函数调用了太多次
我的控制器中有一个非常简单的功能,只需标记一个console.log。我需要使用一个函数来调节一个按钮,但是在 ng-repeat 中,控制器会重复所有的事情很多次!正常吗?有可能避免这种情况吗?谢谢。这里有一个例子http://plnkr.co/edit/sME67gQEZQSLI9FOwEAG?p=preview
相关代码:
javascript:
javascript - Angular UI-Router 在页面刷新时无法识别状态
我已经在我的应用程序中实现了用于状态管理的 Angular UI-Router。当用户单击页面的各个部分并在视图中加载适当的信息时,它可以正常工作。但是,当用户从初始状态以外的状态刷新页面时,页面加载时就像处于初始状态一样。以下是详细信息...
这是一个帖子目录,我们拥有列出所有可用帖子的初始视图。然后我们有部分和小节。如果用户单击其中任何一个,则只会显示具有适当类别的帖子。
这是配置:
我的控制器是这样工作的:
我有一个变量叫
然后我调用一个服务函数,以便用所有帖子对象填充数组。
然后我为成功的状态更改设置了一个监听器
如此有效,我们从“/”路径开始,如果用户单击加载特定部分,则 url 将更改,该部分的名称将在 $stateParams 中。然后监听器触发并调用 updatePosts 方法。此方法将清空帖子数组并仅使用具有该部分名称作为类别的帖子重新加载它。更新此数组后,视图将更改以反映新过滤的帖子列表。
这是 updatePosts 函数
同样,问题是这一切都可以正常工作,直到用户决定刷新处于“类别”、“子类别”或“singlePost”状态的页面。即使网址另有说明,它也不会返回到适当的过滤帖子列表,而是恢复到初始状态。
关于问题出在哪里的任何建议?
谢谢
angularjs - 角度避免函数表达式运行多次
我有乘法函数,如count()
getTotal()
. 如果我的cart/object
. 目前我在视图中使用它们,例如{{count()}}
. 所以所有这些功能都在运行多次。我认为这些函数被称为多次,因为脏检查。它是否正确?
现在我阅读了有关该$watch
功能的信息,并且由于性能问题,您应该尽量避免使用它。无论如何,我想测试它,$watched
我的cart
. 我发现它只记录一次$watch
,所以对我来说不是更快cart
并调用那里的所有计算函数然后绑定到计算结果吗?
我有点困惑,因为我认为它会有相同的行为。因为它$watch
也会经过摘要循环。
我知道已经有很多类似的问题,但是有人直接用不那么难的英语为我的案例解释一下,会容易得多。
示例: 什么性能更好?为什么?两种变体都经过消化循环吗?那么为什么变体 2 记录 10 次而变体 1 只记录 1 次?
变体 1
变体 2
试图回答我自己的问题,尽管我不确定它是否正确。
变体 1你有 1 个观察者,但我们只观察值而不是函数,还有 1 个,因为我们用 手动观察购物车$watch
。但是观察者的计算量较小。
变体 2我们正在观察函数返回的值,所以函数必须计算相同的值乘以,女巫更重。在每个摘要周期中,UI 都会更新
它是否正确?那么变体 1 的性能更好吗?
javascript - $location.path('mypath') 即使在摘要阶段也不起作用
我有这样的代码:
两条打印行都返回“$digest”,这意味着我处于摘要循环中……但是 $location.path 调用根本不起作用——特别是浏览器 URL 浏览器不会改变。事实上,这是唯一有效的部分。
此外,在调用之后, location.path() 返回正确的 URL,失败的是它能够传播到浏览器并自动路由页面。虽然我可以使用 $route.reload() 强制路由(如评论中所建议的那样),但我仍然无法更改浏览器 URL,这会将页面置于 URL 和页面状态的不良位置不匹配。
我可以通过直接使用 window.location.href 来解决这个问题,但由于各种原因,这不是一个很好的解决方案。
有很多关于 $location.path 不起作用,因为它是在角度范围之外调用的(因此你必须通过应用强制它),但是当它看起来像在消化周期中时有什么想法吗?