问题标签 [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 - ngRepeat 基于范围变量的过滤器
我有以下使用 ng-repeat 来显示博客文章:
'filterCategory' 是一个范围变量,我通过 ng-click 更改一组列表项:
由以下控制:
问题是,当用户单击其中一个列表项并setFilterCategory()更改范围内的filterCategory时,会显示所有帖子(好像没有过滤器一样),然后应用过滤器。我想避免这种过渡,直接从前一个过滤器转到下一个过滤器。有什么我可以做的吗?
我认为这与摘要周期有关,但我没有足够的经验来准确说明我应该改变什么,如果有的话。
编辑#1:
我试图在小提琴中重现(http://jsfiddle.net/igorauad/w4mkny0e/),但没有成功。它在这个小提琴中工作正常,而在我的应用程序中它需要更长的时间。我不知道它是否有区别,但在我的应用程序中,我从资源加载帖子,而在小提琴中它们是静态声明的。
angularjs - $q 承诺链的 .then 中调用的东西是否被应用到摘要中?
如果我使用 Angular 的 $q,我是否需要担心使用 $evalAsyn 或 $apply?还是由 $q 自动处理?
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/
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 的新::
(即一次性绑定)运算符。
javascript - Angularjs:防止对 mouseenter/mouseleave 事件进行脏检查
在 Angular 中,有没有办法防止对此类事件进行脏检查?
实际上,我在这些处理程序中的代码不会更改模型,因此我不希望 Angular 对这些经常触发的事件执行脏检查。
javascript - 绑定到相同功能的角元素。避免对每个摘要进行多次调用
鉴于以下情况:
isEngineOn 随我从服务器收到的 websocket 消息而变化。
有没有办法避免在每个摘要期间评估 isEngineOn,4 次,每个重复值?诸如初始化变量之类的东西?
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()
从这里调用而不导致此错误?如果是这样,怎么做?
angularjs - 视图未使用更新的模型刷新
模型更改时,我的角度视图没有更新。模型在指令中的“onblur”事件中发生变化。
inputNgEl.bind('blur', function () {
})
我的模型被传递给指令,指令显示模型的内容。
请在下面找到plunk。 http://plnkr.co/edit/Ku5yOyWsa1fjnLIs2Eu3?p=preview
你能告诉我这里缺少什么吗?谢谢。
angularjs - 如何解决angular js中的cookieStore未定义错误?
在这里,当我单击 storeAreaInCookie 这将导致城市的纬度和经度时,我必须将这些结果存储在 cookie 中,并且需要在我想在我的网站中使用的任何地方使用。但是当我尝试使用此代码时,它不会存储cookie 并在控制台中说未定义 cookie 存储。我该如何解决这个问题?
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?