0

ここに私の問題があります$scope.documents。ディレクティブから更新することができません。$scope.parentUpdate({ documents: $scope.docType})まったく実行されていないように見えるため、ドキュメントは更新されません。$scope.docType= result必要なすべてのデータを取得しますが、親コントローラーにプッシュバックしません。

app.controller('docGridController',['$scope','getSideNav', 'getDocuments', 
            function($scope, getSideNav, getDocuments){

getSideNav().then(function(result){$scope.SideNav = result;
},
                    function(error){$scope.error = result;});

$scope.slideToggle = true;


$scope.documents=[];

$scope.update = function(k){

    $scope.documents = k;
    consle.log($scope.documents);
}}]);

app.directive('foSidenav',['getDocuments',function(getDocuments){

    return{

        replace: true,
        scope: {

            info:'=',
            docType:'=',
            parentUpdate:'&'
        },
        templateUrl:function(element,attr){

            return  attr.url;
        },
        controller: ['$scope','$element', '$attrs' ,'getDocuments',
                        function($scope,$element, $attrs, getDocuments){

            $scope.selectDocType = function(id)
            {
                getDocuments(id).then(function(result){$scope.docType= result;
                    console.log($scope.docType);
                    alert('Printed results');
                    $scope.parentUpdate({ documents: $scope.docType});
                    },
                    function(error){$scope.error = result;});


            };

        }]
    };
}]);

これが私のテンプレートで使用しているタグです

<ul class="side-nav">
                    <li class="mainCat" ng-repeat=" item in info">
                        <a href="#" id="CatHeader" ng-click="slideToggle =! slideToggle">
                            <i class="{{item.displayIcon}} left-bar"></i>
                            <span ng-bind-html="item.label | html"></span>
                        </a>
                        <ul class="subCat slide-toggle" ng-show="slideToggle">  


                            <li ng-repeat="subItem in item.docTypes">
                                <a href="#" ng-click="selectDocType(subItem.id)" >
                                <i class="fi-folder"></i>
                                <span ng-bind-html="subItem.Name | html"></span>
                                </a>
                            </li>


                        </ul>
                    </li>           

そして、ここにディレクティブ呼び出しがあります

<fo-sidenav url="{!URLFOR($Resource.FOPS_Resource, 'components/sidenav.html')}" info='SideNav' docType='documents' parentUpdate="update(documents)"></fo-sidenav>       

何か案は??これらのスコープは本当に私をうんざりさせています

4

1 に答える 1

2

問題は、html で分離されたスコープの変数をどのように使用しているかにあると思います。今、あなたは以下のようにそれらを使用しています:

<fo-sidenav url="{!URLFOR($Resource.FOPS_Resource, 'components/sidenav.html')}"info='SideNav' docType='documents' parentUpdate="update(documents)"></fo-sidenav>

次のようにしてみてください。

<fo-sidenav url="{!URLFOR($Resource.FOPS_Resource, 'components/sidenav.html')}" info='SideNav' doc-type='documents' parent-update="update(documents)"></fo-sidenav>

マッチング ディレクティブ正規化セクションの詳細については、こちらを参照してください。

于 2015-11-05T20:07:56.153 に答える