0

Google дает мне ошибку: «TypeError: Невозможно прочитать свойство« открыто »неопределенного» в ответ на мой модуль ui-bootstrap. Я использую другие директивы ui-bootsrap.Modal возвращается неопределенно в директиве

Я не объявляю модальную зависимость правильно?

angular.module('ireg').directive('study', function (studyFactory) { 
return { 
    restrict:'E', 
    scope: {    
     objectid:'@objectid' 
    }, 
    templateUrl: '/ireg/components/study/study.html', 

    link: function (scope, element, attrs, $modal) { 

     scope.openMilestonesDialog = function() { 
      var modalInstance = $modal.open({ 
       animation: $scope.animationsEnabled, 
       templateUrl: '/ireg/components/add-milestones/addMilestonesDialog.html', 
       controller: '/ireg/components/add-milestones/addMilestonesDialogController.js', 
       size: lg 
      }); 
     }; 

    }//end of link 

} 
}); 

angular.module('ireg').controller('addMilestonesDialogController', function ($scope, $modalInstance, studyId) { 

    $scope.ok = function() { 
    $modalInstance.close(); 
}; 


}); 
+0

Я думаю, что 'размер: lg' вызывает проблему. Попытайтесь изменить его с помощью 'size: 'lg''. –

ответ

1

Вы должны включать в себя $ модальный обслуживание в вашей directive функции вместо link функции:

angular.module('ireg').directive('study', function (studyFactory, $modal) { 
    return { 
     restrict:'E', 
     scope: {    
      objectid:'@objectid' 
     }, 
     templateUrl: '/ireg/components/study/study.html', 

     link: function (scope, element, attrs) { 

      scope.openMilestonesDialog = function() { 
       var modalInstance = $modal.open({ 
        animation: $scope.animationsEnabled, 
        templateUrl: '/ireg/components/add-milestones/addMilestonesDialog.html', 
        controller: '/ireg/components/add-milestones/addMilestonesDialogController.js', 
        size: 'lg' 
       }); 
      }; 

     }//end of link 

    } 

}); 

И да, Альберто I.N.J. правильно, вы должны установить атрибут size как строку.

+0

Thankyou. Могу ли я спросить, почему он находится там в другом месте? –

+0

Да, конечно. Можете ли вы предоставить код, в котором вы используете директивы ui-bootstrap? Насколько я помню, только модальная директива требует $ modal service как инъекции зависимостей в вашей директиве. Все остальные директивы работают нормально после включения модуля ui.bootstrap в ваше приложение. –

1

Вы должны вводить $ модель в самой директивы и изменить Lg к «LG»

angular.module('ireg').directive('study', function (studyFactory, $modal) { 
    return { 
     restrict:'E', 
     scope: {    
      objectid:'@objectid' 
     }, 
     templateUrl: '/ireg/components/study/study.html', 

     link: function (scope, element, attrs) { 

      scope.openMilestonesDialog = function() { 
       var modalInstance = $modal.open({ 
        animation: $scope.animationsEnabled, 
        templateUrl: '/ireg/components/add-milestones/addMilestonesDialog.html', 
        controller: '/ireg/components/add-milestones/addMilestonesDialogController.js', 
        size: 'lg' 
       }); 
      }; 

     }//end of link 

    } 

}); 
Смежные вопросы