Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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
用于访问子对象的ng重复作用域的AngularJS指令_Angularjs_Angularjs Directive_Angularjs Ng Repeat - Fatal编程技术网

用于访问子对象的ng重复作用域的AngularJS指令

用于访问子对象的ng重复作用域的AngularJS指令,angularjs,angularjs-directive,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Ng Repeat,好的,让我开始说,我有一个指令,它创建了一个JQueryUI选项卡设置,带有一个填充选项卡名称和选项卡内容的支持字段 <div id="summaryTabPanel"> <ul> <li ng-repeat="category in SummaryCategories"> <a href="#tabs-{{$index + 1}}">{{category.Name}}</a>

好的,让我开始说,我有一个指令,它创建了一个JQueryUI选项卡设置,带有一个填充选项卡名称和选项卡内容的支持字段

<div id="summaryTabPanel">
    <ul>
        <li ng-repeat="category in SummaryCategories">
            <a href="#tabs-{{$index + 1}}">{{category.Name}}</a>
        </li>
    </ul>

    <div ng-repeat="category in SummaryCategories" id="tabs-{{$index + 1}}">
        {{category.Content}}
    </div>
</div>
这将监视是否找到最后一个重复项,然后通过语句
$(“#summaryTabPanel”).tabs()应用DOM更改

这一切都很好,但只有当我将指令应用于
summaryTabPanel
容器的最后一个ng重复子项时,它才起作用

<div id="summaryTabPanel">
    <ul>
        <li ng-repeat="category in SummaryCategories">
            <a href="#tabs-{{$index + 1}}">{{category.Name}}</a>
        </li>
    </ul>

    <div ng-repeat="category in SummaryCategories" id="tabs-{{$index + 1}}" repeat-done>
        {{category.Content}}
    </div>
</div>

{{category.Content}
如果我把它移到前一个ng重复项,事情会工作,但不太正确。如果我把它移到父容器中,事情就根本不起作用了

在我看来,将这个指令应用于最后一个孩子是错误的,相反,我有办法将它应用于根并以某种方式完成同样的事情

<div id="summaryTabPanel" repeat-done>

用Angular可以吗?

根据这一点,您应该像这样编写指令

Application.Directives.directive("repeatDone", function () {
return {
    restrict: "A",
    link: function (scope, element, attrs) {
        $timeout( function () {
            $("#summaryTabPanel").tabs({
                    event: "mouseover"
            });
        });
    }
});
请看一下我为说明您的情况而创建的示例

Application.Directives.directive("repeatDone", function () {
return {
    restrict: "A",
    link: function (scope, element, attrs) {
        $timeout( function () {
            $("#summaryTabPanel").tabs({
                    event: "mouseover"
            });
        });
    }
});