如何在父范围内调用变量

时间:2015-07-06 16:33:46

标签: javascript angularjs

我在控制器中有一个变量options。 我使用指令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)?

2 个答案:

答案 0 :(得分:0)

尝试'$ scope.parentCtrlAsName'然后假设父控制器是子控制器中的userCtrl尝试:

var parent = $scope.userCtrl; 

$ scope.userCtrl允许您访问父控制器范围。

答案 1 :(得分:0)

不要试图让孩子读取其父母的范围,而是考虑让父母将必要的数据传递给孩子。

(以下可能不太正确,因为我不确定你从哪里获得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
    };
})