在每个控制器中调用数据与将其广播/发送给所有控制器

时间:2018-08-29 05:10:48

标签: angularjs angularjs-service angularjs-controller

正如我所研究的,我们可以使用$ emit将数据发送到所有父控制器,并使用$ broadcast将数据广播到所有子控制器,而我们可以使用$ on来捕获从$发出/广播的数据。发射/ $广播。为了从外部json获取数据,我们使用$ http.get。

如果我们彼此嵌套有多个控制器,是否建议在每个控制器中多次使用$ http.get或在父控制器中使用一次$ http并将数据广播到存在的所有子控制器?或者,如果我们有一个单独的服务来处理所有可以在每个控制器中进一步使用的$ http.get请求,会更好吗?

2 个答案:

答案 0 :(得分:0)

您可以在服务中创建一个函数,并在需要时像父母和孩子一样使用它。

**Service::**

function getData() {
// Get data from API and return.
}

**Controller 1**

function getRecord() {
 // call service1.getData();
}

**Controller 2**

function getRecord() {
//  calll service1.getData();
}

答案 1 :(得分:0)

无论选择哪个选项,都应该从服务中调用API(TinyMCE函数)。这使它们可重用。

话虽如此,在您的情况下,广播不是一个好主意。我会选择#2。 另外,如果您对子控制器发出的所有请求的响应都相同,请尝试将首次调用的响应保存到服务中,然后重用。