不影响视图的角度数据:使用指令,对象或函数?

时间:2015-05-18 13:47:21

标签: javascript angularjs performance

我在Angular控制器中有一组重复的API调用。

相关数据当然是API URI,POST或GET,一些标头数据和JSON对象。 API调用始终返回JSON对象。

我开始使用指令,但这似乎与用于$ scope的数据最相关(例如在视图中)。这些数据在雷达下运行,并且可能最终生成视图中使用的数据,但最常见的不是,并且通常不是可以抽象的方式。

所以:这是否意味着我不应该使用指令?如果我不使用指令,那么使用JS对象(似乎更模块化)或函数(似乎更易变量)来处理这段代码会更好吗?

是的,我得到的对象可以包含函数,但函数也可以包含回调所以......寻找一种"最佳实践"这里。在模块化和灵活性方面。

1 个答案:

答案 0 :(得分:1)

您应该为此创建Angular服务。 https://docs.angularjs.org/guide/services

您的服务将包含一种方法,让我们说" getResults"它将进行API调用并返回数据或承诺($http)。然后,您可以向控制器注入服务,并使用该方法获取数据并将其分配给$scope

Angular服务肯定比更通用的JavaScript服务更受欢迎,因为它允许您更好地利用Angular的范围和其他类似的东西。在Angular的工厂,服务和提供商之间,服务是最符合您尝试做的事情,因为工厂太基础并且通常用于在使用提供商时解决较小的问题 - 正如它在Angular文档中所述 - "只有当你想要为应用程序范围的配置公开API时才必须在应用程序启动之前进行。"这不是你想要做的事情。