Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angularjs控制器和模板封装与Angularjs组件_Javascript_Angularjs_Angular - Fatal编程技术网

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

Javascript Angularjs控制器和模板封装与Angularjs组件,javascript,angularjs,angular,Javascript,Angularjs,Angular,我有一个名为homeInside的状态,它是我的angularjs应用程序中的控制器和模板(我正在使用路由)。这里有很多元素,还有一个带有链接到doSomething的ng click按钮。我有另一个州叫“屋外”。这与第一个任务完全相似,但doSomething可以完成另一个任务 我不想复制任何东西。如何使用一个控制器和模板来实现这一点?这是否是Angular2组件在此类场景中发挥作用的原因(使用其构造函数) 任何想法都将不胜感激 编辑: 在第一种情况下: $scope.doSomething

我有一个名为homeInside的状态,它是我的
angularjs
应用程序中的控制器和模板(我正在使用路由)。这里有很多元素,还有一个带有链接到doSomething的ng click按钮。我有另一个州叫“屋外”。这与第一个任务完全相似,但doSomething可以完成另一个任务

我不想复制任何东西。如何使用一个控制器和模板来实现这一点?这是否是
Angular2
组件在此类场景中发挥作用的原因(使用其构造函数)

任何想法都将不胜感激

编辑:

在第一种情况下:

$scope.doSomething = function() {
    AuthService.logout();
}
在第二个例子中:

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

所有其他部件都完全相同。

在Angular v1.x中,您必须制造工厂,并将其注入到您想要制造相同部件的控制器中。
如果你需要工厂的例子,我给你

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

创建指令时,使用“&”符号将函数设置为指令参数

下面是一个很好的例子来解释这个用法


请参见“添加”部分,其中“添加”是正在传递的函数

您能告诉我们您的代码吗?你想知道AngularJS或Angular2的答案吗?听起来像是一个获取函数的指令injected@Raulucco是的,但我们不确定,对吗?我们需要一个snnipet。@Raphaelparerira是的,我们需要一些示例代码,我只是想让他想想他们。谢谢你的回复。请检查编辑部分。谢谢。但我认为这与工厂或服务无关。请参见编辑部分。看来只有
指令
才是唯一的方法。但是仍然需要复制模板。无论如何,谢谢。不要复制模板使用transaclude,这样您就可以插入模板的更改部分并封装模板的常见内容