AngularJS родительская область не обновляется из директивы

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>       

Есть идеи?? эти возможности действительно отбрасывают меня

Теги:
angular-directive
angularjs-scope

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>

Для получения дополнительной информации о директивах Matching чтения и секции Нормализации здесь

  • 0
    Это безумно!!! Это сработало, почему это оказывает такое большое влияние?
  • 1
    Вы можете прочитать разделы, которые я упомянул.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню