在 ng-include 中调用父函数

Calling parent function in ng-include

我正在我的应用程序中使用 ng-include。它正在工作,但我想知道这是否是执行 ng-include 的好方法。 ng-include 文件中的 html 正在从其父级调用该函数。

示例可见本plunkr。 plunkr 没有显示按钮,但想法是 ng-include 文件中的元素正在调用其父函数。那是不好的做法吗?有其他选择吗? 例如,我的 ng-include 中的 html 包含这个:

  <button class="mybutton" ng-click="ctrl.parentFn"></button>

我问的原因是因为我有一个指令,其中有一个带有按钮的默认模板。如果用户想要指定自定义模板(如按钮的不同定位或更多元素),他们可以指定自定义模板,但他们可以使用其父控制器的默认功能(ng-click)。

非常欢迎和赞赏任何评论。

我不能就这一点争论,但如果你 div 嵌套在多个控制器中,那么你需要使用 $parent.$parent.$parent,根据控制器层次结构,它的长度可能会增加。

所以我建议您使用 controllerAs 语法,它提供控制器的别名并且可以在任何 div 中访问它,方法是使用您可以访问其方法的任何控制器的别名。

标记

<div ng-controller="MainCtrl as main">
  {{ main.title }}
  <div ng-controller="AnotherCtrl as another">
    {{ another.title }}
    <div ng-controller="YetAnotherCtrl as yet">
      {{ yet.title }}
    </div>
  </div>
</div>

参考 this article 了解更多详细信息。