我有一个名为 homeInside 的状态,它是我angularjs
应用中的控制器和模板(我正在使用路由)。有很多元素,还有一个按钮,其中ng-click链接到 doSomething 。我有另一个名为 homeOutside 的州。这完全类似于第一个,但 doSomething 执行另一项任务。
我不想复制任何东西。如何使用单个控制器和模板执行此操作?是Angular2
组件为这种情况(使用它的构造函数)发挥作用的原因吗?
任何想法都会受到高度赞赏。
修改
在第一个州:
$scope.doSomething = function() {
AuthService.logout();
}
在第二个:
$scope.doSomething = function() {
$state.go('dashboard');
}
所有其他部分完全相同。
答案 0 :(得分:1)
我建议创建一个自定义指令并传入doSomething函数
创建指令时,您可以使用'&'用于将函数设置为指令参数的符号
这是一个很好的例子,解释了用法 https://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-3-isolate-scope-and-function-parameters
请参阅"添加"是传递的函数
答案 1 :(得分:0)
在Angular v1.x中你必须出厂并将它注入你想做同样事情的控制器。 如果你需要工厂的例子我给你。