问题标签 [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.

0 投票
1 回答
1349 浏览

angularjs - ngRepeat 基于范围变量的过滤器

我有以下使用 ng-repeat 来显示博客文章:

'filterCategory' 是一个范围变量,我通过 ng-click 更改一组列表项:

由以下控制:

问题是,当用户单击其中一个列表项并setFilterCategory()更改范围内的filterCategory时,会显示所有帖子(好像没有过滤器一样),然后应用过滤器。我想避免这种过渡,直接从前一个过滤器转到下一个过滤器。有什么我可以做的吗?

我认为这与摘要周期有关,但我没有足够的经验来准确说明我应该改变什么,如果有的话。

编辑#1:
我试图在小提琴中重现(http://jsfiddle.net/igorauad/w4mkny0e/),但没有成功。它在这个小提琴中工作正常,而在我的应用程序中它需要更长的时间。我不知道它是否有区别,但在我的应用程序中,我从资源加载帖子,而在小提琴中它们是静态声明的。

0 投票
1 回答
157 浏览

angularjs - $q 承诺链的 .then 中调用的东西是否被应用到摘要中?

如果我使用 Angular 的 $q,我是否需要担心使用 $evalAsyn 或 $apply?还是由 $q 自动处理?

0 投票
1 回答
385 浏览

angularjs - Angular 服务将游戏循环和摘要循环结合起来

我正在集成我用 Angular 编写的 2D JavaScript 游戏引擎。该游戏是一款太空游戏,引擎处理太空环境的模拟,Angular 处理与空间站交易商品的菜单等。

Angular 服务充当两个上下文之间的接口。例如,当游戏需要记录消息时,它会调用logServiceInstance.logDebug("Some message");. 有一个 ConsoleController 将日志消息提供给覆盖游戏画布的 HTML div(在 $scope.logs 上使用 ng-repeat):

因为游戏引擎在 Angular 之外更新服务,所以 Angular 不知道其中一些日志,所以所有的日志方法(logInfo、logError、logDebug 等)都会在 logService 上调用它。从游戏创建的日志将“true”作为第二个参数传递以触发摘要:

ConsoleController 无法一致地提取日志消息。日志在 HTML 显示中丢失,但显示在 javascript 控制台中。此外,我收到在摘要中触发摘要的错误。

问题:

  • 我如何知道某个其他来源的摘要是否已经在进行中?
  • 服务似乎是统一两个框架之间传递状态的最佳方式,但这是一个糟糕的模式吗?如果是这样,为什么?

在此先感谢 Angular 大师。

注意:游戏引擎是https://bitbucket.org/profexorgeek/frostflake-js-game-engine/

0 投票
1 回答
224 浏览

angularjs - 如何创建输出唯一 ID 的角度过滤器

问题很简单,你如何创建一个 angularJs 过滤器,它将任何输入连接到一个唯一的 ID。这对于生成 HTML id 或为 ng-repeat 中的一组元素定义唯一属性值非常有用。

注意:ID 必须是“全局”唯一的,这使得 Angular ng-repeat$index无用。

现在,您可能想到的解决方案是这样的:

myModule.filter('uniqueId', function(){ var idCounter = 0; return function(input) { return (input || '') + (++idCounter); }; });

并在您的 HTML 中编写如下内容:

<div id="{{groupName | uniqueId}}">

挑战在于 Angular 将进入摘要循环,因为评估groupName | uniqueId永远不会产生相同的值,这意味着范围永远不会稳定。

最后一件事。我们使用 Angular v1.2.27,这意味着我们不能使用 Angular 1.3 的新::(即一次性绑定)运算符。

0 投票
1 回答
254 浏览

javascript - Angularjs:防止对 mouseenter/mouseleave 事件进行脏检查

在 Angular 中,有没有办法防止对此类事件进行脏检查?

实际上,我在这些处理程序中的代码不会更改模型,因此我不希望 Angular 对这些经常触发的事件执行脏检查。

0 投票
3 回答
275 浏览

javascript - 绑定到相同功能的角元素。避免对每个摘要进行多次调用

鉴于以下情况:

isEngineOn 随我从服务器收到的 websocket 消息而变化。

有没有办法避免在每个摘要期间评估 isEngineOn,4 次,每个重复值?诸如初始化变量之类的东西?

0 投票
0 回答
347 浏览

angularjs - 尝试从 ng-translate 错误处理程序 $http.post() 时“达到 10 $digets() 迭代”

我们使用角度翻译来处理网站的本地化,使用我们自己的自定义加载器从服务器获取翻译。在服务器端,我们有处理丢失的翻译键的逻辑,这样我们既可以返回一些东西(来自备用语言的翻译或键本身),也可以向系统报告请求了键(因此它会显示在翻译 UI 中网站上的其他地方)。现在,我正在努力在客户端构建类似的东西。

$translateProvider有一个我们已经成功配置的方法,useMissingTranslationHandler(factory)使用以下命令退出控制台缺少密钥:

但是,然后我取消对POST服务器的注释,通知丢失的密钥,页面挂在angular.js-的第 14394 行throw e,在哪里e.message

[$rootScope:infdig] 达到 10 次 $digest() 迭代。中止!在最后 5 次迭代中触发的观察者:[]

我已经尝试了各种方法来解决这个问题 - 例如将调用包装起来$http.post()$timeout$rootScope.$apply无济于事;我仍然收到相同的错误消息。

有没有办法安排$http.post()从这里调用而不导致此错误?如果是这样,怎么做?

0 投票
2 回答
60 浏览

angularjs - 视图未使用更新的模型刷新

模型更改时,我的角度视图没有更新。模型在指令中的“onblur”事件中发生变化。

inputNgEl.bind('blur', function () { })

我的模型被传递给指令,指令显示模型的内容。

请在下面找到plunk。 http://plnkr.co/edit/Ku5yOyWsa1fjnLIs2Eu3?p=preview

你能告诉我这里缺少什么吗?谢谢。

0 投票
2 回答
7633 浏览

angularjs - 如何解决angular js中的cookieStore未定义错误?

在这里,当我单击 storeAreaInCookie 这将导致城市的纬度和经度时,我必须将这些结果存储在 cookie 中,并且需要在我想在我的网站中使用的任何地方使用。但是当我尝试使用此代码时,它不会存储cookie 并在控制台中说未定义 cookie 存储。我该如何解决这个问题?

0 投票
4 回答
2548 浏览

javascript - ng-repeat call controller function too many times

I have next code (events is array):

time-ago - my custom directive. It is executed events.length times.

My controller:

After list is shown - I see that callPrepareAlertValueCount grows. Console log:

Please, can someone explain why is prepareAlertValue executed all time. Do I need to write directives for each formatter function?