Я следил за учебником, пытающимся получить директиву для работы, которая требовала ngModel
:
app.directive("contenteditable", function() {
return {
restrict: "A",
require: "ngModel",
/* etc. */
Это не удалось загрузить:
Контроллер 'ngModel', требуемый директивой 'contenteditable', не может быть найден!
Посмотрев аналогичный код в документах angular, я изменил строку require
:
require: "?ngModel"
Теперь он отлично работает. Я предполагаю, что ?
делает это необязательным, но это не имеет большого значения для меня. Что делает знак вопроса и (если это не очевидно), почему он позволяет директиве работать?