我在控制器中有一个变量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)?
发布于 2015-07-07 01:04:41
尝试'$scope.parentCtrlAsName‘,然后假设父控制器是子控制器中的userCtrl尝试:
var parent = $scope.userCtrl; $scope.userCtrl允许您访问父控制器作用域。
发布于 2015-07-07 01:05:54
与其让子进程读取其父进程的作用域,不如考虑让父进程将必要的数据向下传递给子进程。
(以下内容可能不太正确,因为我不确定您是从哪里获得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
};
})https://stackoverflow.com/questions/31251083
复制相似问题