我在控制器中有一个变量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
)?
答案 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
};
})