Angularjs控制器和模板封装与Angular组件

时间:2017-04-10 10:25:30

标签: javascript angularjs angular

我有一个名为 homeInside 的状态,它是我angularjs应用中的控制器和模板(我正在使用路由)。有很多元素,还有一个按钮,其中ng-click链接到 doSomething 。我有另一个名为 homeOutside 的州。这完全类似于第一个,但 doSomething 执行另一项任务。

我不想复制任何东西。如何使用单个控制器和模板执行此操作?是Angular2 组件为这种情况(使用它的构造函数)发挥作用的原因吗?

任何想法都会受到高度赞赏。

修改

在第一个州:

$scope.doSomething = function() {
    AuthService.logout();
}

在第二个:

$scope.doSomething = function() {
    $state.go('dashboard');
}

所有其他部分完全相同。

2 个答案:

答案 0 :(得分:1)

我建议创建一个自定义指令并传入doSomething函数

创建指令时,您可以使用'&'用于将函数设置为指令参数的符号

这是一个很好的例子,解释了用法 https://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-3-isolate-scope-and-function-parameters

请参阅"添加"是传递的函数

答案 1 :(得分:0)

在Angular v1.x中你必须出厂并将它注入你想做同样事情的控制器。 如果你需要工厂的例子我给你。