Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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 如何在父作用域中调用变量_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在父作用域中调用变量

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

我在控制器中有一个变量选项。 我使用指令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 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建议的控制器覆盖可能是一种方法。