角度重载嵌入式控制器
Angular reload embedded controller
我有一个使用ng控制器标签嵌入的控制器,它运行良好,但我也有一个外部控制器,需要调用该控制器的一个函数:
<div ng-controller='NavigationController'>
<!-- some html-->
</div>
和控制器
app.controller('NavigationController', function ($scope) {
$scope.downloadItems = function(value) {
//do something
}
})
现在我想从另一个控制器触发downloadItems方法。
我在任何地方都找不到该怎么做?
我自己只是在学习Angular.js,但我很确定,如果你想重用这样的逻辑,你应该把它放在一个服务中。(事实上,不管怎样,将这类工作放入服务中可能是个好主意,这样就可以很容易地从控制器中分离出来进行测试和重用。)
app.factory("NavigationService", function() {
return {
downloadItems: function(value) { /* do something */ }
}
});
app.controller("NavigationController", ["$scope", "NavigationService", function($scope, NavigationService) {
$scope.downloadItems = function(value) {
NavigationService.downloadItems(value);
}
}]);
app.controller("OtherController", ["$scope", "NavigationService", function($scope, NavigationService) {
...
NavigationService.downloadItems(value);
...
}]);
现在,在控制器之外测试下载过程很容易,模拟downloadItems函数来测试控制器也很容易。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 有可能过滤来自嵌入式YouTube的声音吗
- 从控制器返回后Ajax启动事件激发
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 将值从html传递到AngularJS控制器
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 从控制器继承了隔离的作用域以生成可重用的指令
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 角度重载嵌入式控制器
- 防止在ui-router中重载父控制器
- 如何从嵌入式D3脚本中访问Angular控制器作用域
- 同时使用隔离示波器和嵌入式指令控制器
- 当重载一个返回视图的控制器时,我该如何基于ViewBag属性加载不同的内容?