【问题标题】:How to call an AngularJS filter from pure JavaScript Method如何从纯 JavaScript 方法调用 AngularJS 过滤器
【发布时间】:2016-02-03 05:47:11
【问题描述】:

这只是为了测试和学习。我有一个 JSON 对象obj。 我想在其上调用 angular Json 过滤器来格式化该 json 对象并将其打印在 chrome 控制台上。不是通过任何按钮单击。直接在chrome的控制台上写代码就行了。

我知道我也可以使用一些在线工具或离线工具。但我想学习如何在纯 JavaScript 中运行角度定义的过滤器。

注意:

  • 我可以像{{obj | Json}}这样在视图中调用它
  • 我也可以从控制器调用它为$filter('Json')(obj);

但我无法在纯 javascript 中调用它,其中 angular 附加了脚本标记但没有引导(启动)。我可以访问angular 对象。

我想要类似的东西

var $filter = angular.filter(); //Since I do not have controller here
console.log($filter('Json')(obj));

【问题讨论】:

  • 要了解更多这个问题,假设您只想使用角度过滤器,既不是控制器也不是任何其他角度的东西。然后你会想要直接从你的纯 JavaScript 代码调用过滤器。这是我想知道的。我知道这很愚蠢,但它可以增加我们的知识作为黑客角度来使用它作为 pertials ;)
  • 您需要引导 Angular 才能访问它,但您可以设置一个全局变量并在应用程序中为其分配 $filter,这样您就可以在控制台中进行测试
  • 好的,太好了。如果我将过滤器对象分配给我的 gobal 变量。我现在明白了。但是来到第一点。如何 botstrap 并且只使用过滤器?
  • 如果你只是想测试一些东西......在 plunker 中进行。可以在 15 秒内设置一个新的应用程序。 Angular 不是一个库……它是一个框架

标签: javascript angularjs json


【解决方案1】:

var $injector = angular.injector(['ng']);
var $filter = $injector.get("$filter");
var obj = {a:1};
console.log($filter("json")(obj));
<script src="//unpkg.com/angular/angular.js"></script>

DEMO on JSFiddle

【讨论】:

  • 是的。这就是我一直在寻找的。谢谢。
猜你喜欢
  • 2015-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
  • 2018-02-17
相关资源
最近更新 更多