Ответ 1
Если вы не добавляете ?
и не помещаете свойство prop
в свой элемент, на котором вы используете директиву, тогда будет выведено исключение.
Добавление ?
обозначает свойство как необязательное. Как упоминалось в документации для $compile
:
Вы можете избежать этого поведения, используя =? или =? attr, чтобы указать свойство как необязательное.
Я думаю, что документация может быть немного устаревшей в этой области. NON_ASSIGNABLE_MODEL_EXPRESSION
отображается только в более старых версиях источника.
Обратите внимание, что исключение вызывается только после того, как вы попытаетесь записать свойство scope. Я собрал быстрый планшет, чтобы продемонстрировать проблему: http://plnkr.co/edit/hjUq6ZisuRG2C3mZpRDj?p=preview