Javascript 将变量传递到ng transclude
我想知道,是否可以将$index参数传递到ng transclude?我试图通过点击ng transclude中的元素来关注textarea,触发控制器中的一个函数来查看textarea,但我无法获得正确的IDJavascript 将变量传递到ng transclude,javascript,html,angularjs,angularjs-compile,Javascript,Html,Angularjs,Angularjs Compile,我想知道,是否可以将$index参数传递到ng transclude?我试图通过点击ng transclude中的元素来关注textarea,触发控制器中的一个函数来查看textarea,但我无法获得正确的ID <div ng-repeat="locale in $ctrl.enabled"> <table> <tbody> <tr> <td flex l
<div
ng-repeat="locale in $ctrl.enabled">
<table>
<tbody>
<tr>
<td flex layout="row" layout-align="start end">
<ng-transclude
ng-transclude-slot="theExtraMenu">
</ng-transclude>
</td>
</tr>
<tr>
<td>
<md-input-container
md-no-float="true">
<textarea id="{{'textarea'+$index}}">
</textarea>
</md-input-container>
</td>
</tr>
</tbody>
</table>
</div>
因此,最后,我创建了一个父组件,该组件将区域设置作为输入,并转包所有必要的内容。然后我需要所述组件的控制器,这就是我如何看待locale的值 我没有使用作用域父访问的原因是,如果作用域的层次结构发生变化,它就会被破坏 谢谢你的灵感 编辑:示例-
<div ng-repeat="locale in $ctrl.enabled">
<translated-textarea-menu locale="locale">
<the-extra-menu>
<ng-transclude ng-transclude-slot="theExtraMenu"></ng-transclude>
</the-extra-menu>
</translated-textarea-menu>
然后在转置组件(额外菜单组件)中
然后使用this.translatedTextareaMenu.locale
指令可以要求其他指令的控制器启用彼此之间的通信。这可以通过为require
属性提供对象映射在组件中实现。对象键指定将所需控制器(对象值)绑定到所需组件控制器的属性名称
有关详细信息,请参阅
AnguarJS$compile服务将转包内容链接到组件的父范围。由于$index
属性是components作用域的子作用域的一部分,所以它对任何转置内容都不可用。作用域变量不是其中之一。我在听……通过
元素,内容被绑定到带有ng model
指令的控制器。@georgeawg您会按照我回答的方式执行吗?:)举一个例子会很有帮助。这里我们来看看@georgeawg是如何与。以及ngModelController
与及其通信的方式。
component: {
templateUrl: 'xyz.html',
bindings: {
locale: '&',
},
transclude: {
theExtraMenu: '?theExtraMenu'
},
controller: TranslatedTextareaMenuController,
controllerAs: '$ctrl',
}
component: {
templateUrl: 'x.html',
bindings: {
variables: '&'
},
require: {
translatedTextareaMenu: '^translatedTextareaMenu'
},
controller: TheExtraMenuController,
controllerAs: '$ctrl',
}