问题标签 [angular-decorator]

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 回答
1202 浏览

javascript - 没有 object.defineProperty 的 AngularJS 装饰器

如何在无法访问 object.defineProperty 的情况下使用装饰器?

我正在研究可用的垫片:

但如果那些没有通过测试,装饰器是否有另一种工作方式?

我正在为$onRootScope使用装饰器。

我正在使用角度 1.08。我需要兼容 IE7。

更新

我尝试了一些似乎有效的方法,但我不知道它们之间的区别:plunkr

谢谢你。

0 投票
1 回答
105 浏览

javascript - AngularJS 装饰器 IE7

相关问题:AngularJS Decorator without object.defineProperty

似乎应用装饰器的标准方法是 withobject.defineProperty在 IE7 中不受支持

有一些 polyfill 选项object.defineProperty

我还在plunkr中做了一些实验,得到了一些有趣的结果。


我的问题是:像这个答案所示,这是为 rootScope 提供方法的正确方法。

0 投票
1 回答
1305 浏览

angularjs - 如何使用提供者而不是函数来装饰 $log 服务

我正在尝试在 angularjs 中装饰 $log 服务,以便通过 http 将日志发送到后端。我设法使用这样的东西来做到这一点:

这很好,但我更喜欢使用提供者作为装饰器,以便我可以在模块的配置阶段对其进行配置,用于设置分隔符、远程 api url 等内容。

我尝试创建这样的提供程序:

然后做类似的事情:

但我对如何在提供程序内部传递实际的 $delegate 并返回给装饰器感到困惑。

0 投票
1 回答
182 浏览

angularjs - 如何在 $log 装饰器中访问服务器端配置

我有以下路由 - 这是主页(主页)的一部分:

流程如下,我在加载主页之前从服务器加载配置,以便在那里使用它。

另外我decorator用于'$log'服务,

现在的问题是:如何使用我的路由解析中加载的配置$log decorator

在正确的配置从服务器到达之前,我不介意在装饰器中使用一些默认配置。


似乎找不到使用任何使用$http$resource由于循环依赖的服务的方法


没有办法手动/有问题地初始化装饰器

0 投票
1 回答
257 浏览

dart - 未调用装饰器(范围)/监视函数

这是我的装饰器:

这是相应的 HTML 片段:

“已更改”消息仅在重新加载页面后出现,而不是在更改视图后出现......请。帮助-谢谢

[更新]

我现在正在使用 _router.onRouteStart.listen。下面我的答案中的更多详细信息

0 投票
2 回答
1222 浏览

dart - 如何在 angular.dart 中装饰组件

我想提供一种可能性,使用装饰器以不同的外观和思想来展示我的组件。就像是:

.

不幸的是,它似乎my-decorator是之前处理过的,my-component所以它shadowRoot在注入的Element对象中获得了 null 属性。

可以检查支持类中my-decorator属性的存在my-component,但这显然会污染设计。


更新:感谢 Marko Vuksanovic 的重播,以下内容现在返回:

问题仍然是如何修改 shadow DOM 的样式。

提前感谢您的任何评论/想法/解决方案。

0 投票
1 回答
649 浏览

angularjs - 装饰 Angular-UI 引导模式

我正在构建一个功能,它大约是 Angular-UI Bootstrap Modal 提供的功能的 90%。唯一的区别是:

  • 模态需要相对于容器 div 定位(我已经使用 处理了样式方面windowClass

问题在于对call的$modalStack service 硬编码body.append,如下所示:

第一步在这里

我首先简单地复制/粘贴open每个服务上的方法(重命名为 openWithinElement),然后修改我需要使其工作的内容。如您所见,如果您运行该应用程序,它会在未定义 $q 依赖项时引发错误。好吧,我想这是有道理的。

接下来,我将依赖项添加到provider.decorator方法中,从而绕过了所有依赖项错误。但是后来我遇到了另一个错误,function getTemplatePromise is undefined......当然它没有定义。这是服务的内部方法。

那是我真正陷入困境的时候。如果不重新定义服务中的所有私有函数/对象/道具,似乎不可能用新方法装饰此服务。

是这样吗?

[编辑添加] 我最终用一个updateParentElement方法装饰了服务,然后将模式移动到传入的元素,该元素在 .opened 承诺中执行。它很hacky,但是可以,但是我希望装饰器缺少一些东西。[/编辑]

0 投票
1 回答
901 浏览

angularjs - How do I test a decorator which is a wrapper around $timeout?

I have the following decorator which wraps around the original $timeout from within $rootScope. When used inside controllers, it will help by canceling the $timeout promise when the scope is destroyed.

But how do I properly unit test this? I kinda see 2 tests I should be doing here... 1) Check if the original $timeout was called when $rootScope.timeout() is called and 2) check if the promise is cancelled when the scope is destroyed.

Here's my current test suite for this:

The only thing that this does is giving me 100% coverage. But that's not what I want... How do I properly test this?

0 投票
0 回答
105 浏览

angularjs - 链接装饰器的最佳实践

在angularjs中链接装饰器(即用多个装饰器装饰服务)的最佳实践是什么?


编辑:

例如如何控制装饰器的应用顺序,用多个装饰器装饰同一个服务有什么问题吗?..

0 投票
1 回答
272 浏览

angularjs - 如何在 Angular 中装饰 $modalInstance

是否有可能或目前有一种方法可以在创建时拦截所有模态实例并绑定到它的承诺值?

理想情况下,我想创建一个 Angular 装饰器来执行此操作,但应用程序引导程序上没有可用的 $modalInstance 提供程序,只有 $modal 可用。

每当在我的应用程序中打开模式时,我想这样做以执行一些常见的系统范围的操作。

谢谢