在另一个控制器中调用角度js 1一个控制器,而不是

时间:2017-12-21 08:36:16

标签: angularjs

.state('app.dashboard', {
        url: '/app/dashboard',
        templateUrl: '<%=path "form.html" %>',
        controller: 'formController as form'
      })

我想在特定div上调用form.html内的另一个控制器。

如果form.app为true,则应用另一个控制器,否则应用此控制器默认formController

form.html

<div ng-if="form.app" class="col-md-4 col-sm-2 col-xs-12 form-group1 margin-over">
     <div ng-controller="TestCTRL as test" ng-include="Template.url"></div>
</div>

有人可以告诉我如何实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

尝试使用普通控制器模式进行子/内部控制器,如下所示:

<div ng-if="form.app" class="col-md-4 col-sm-2 col-xs-12 form-group1 margin-over">
    <div ng-controller="TestCTRL" ng-include="Template.url"></div>
</div>

希望这个帮助

答案 1 :(得分:1)

我建议的最好方法是使用服务。由于在评论中忽略了这种方法,下一种方法是使用事件,

function FirstController($scope) {
   $scope.$emit('myEvent', args);
}

function SecondController($scope) {
   $scope.$on('myEvent', function(event, args) {});
}

但在我看来你也在寻找指令, 在这种情况下,角文档有一个很好的例子,https://docs.angularjs.org/guide/directive