Javascript 如何在父作用域中调用变量
我在控制器中有一个变量选项。 我使用指令ng sortable创建内部范围。 我的html看起来像:Javascript 如何在父作用域中调用变量,javascript,angularjs,Javascript,Angularjs,我在控制器中有一个变量选项。 我使用指令ng sortable创建内部范围。 我的html看起来像: <ul as-sortable ng-model="list"> <li ng-repeat="item in list" as-sortable-item> <i as-sortable-item-handle></i> {{ options.text }} </li> </ul> 当我删除as
<ul as-sortable ng-model="list">
<li ng-repeat="item in list" as-sortable-item>
<i as-sortable-item-handle></i>
{{ options.text }}
</li>
</ul>
当我删除as sortable时,我可以看到options.text,因为它在正确的范围内搜索它。
但如何将其纳入新的范围
更新:
$parent.$parent.options.text为我提供变量。
但它看起来很丑。有没有更好的方法避免调用$parent?尝试“$scope.parentCtrlAsName”,然后假设父控制器是子控制器中的userCtrl,尝试:
var parent = $scope.userCtrl;
Tope.USECCTRL让您访问父控制器范围。
< P>而不是试图让孩子读取它的父范围,考虑让父传递必要的数据到子。< /P> 以下可能不太正确,因为我不确定您从何处获得options.text,但我希望想法足够清楚:<ul as-sortable ng-model="list">
<li ng-repeat="item in list" as-sortable-item>
<i as-sortable-item-handle myoptions="{{options.text}}"></i>
{{ myoptions }}
</li>
</ul>
.directive('asSortableItemHandle', function () {
return {
scope: {
myoptions: '@'
}
//...etcetera
};
})
试试$parent.options.text我已经试过了,但也没有。有没有直接绑定的方法?它在当前作用域中搜索变量userCtrl。您现在可以调用userCtrl.ParentCtrlVariable。不幸的是,这是第三方的指令@jideobi benedine Ofmah建议的控制器覆盖可能是一种方法。