Как уже упоминалось в комментариях, привязка данных не будет «отказываться» сама по себе, когда атрибут не определен в области видимости, но будет создавать этот атрибут в области прозрачно.
Если вам нужно какое-либо поведение уведомления, когда имя не найдено, вы можете получить его вручную, украсив директиву ng-model, чтобы проверить, определено ли его значение в области в момент его вставки в DOM.
.config(['$provide', function($provide) {
$provide.decorator('ngModelDirective', ['$delegate', function($delegate){
var directive = $delegate[0];
// Save the old link function
var link = directive.link;
directive.compile = function() {
return function(scope, element, attrs) {
link.apply(this, arguments);
// Now that we've applied the old link function, we can add
// any extra checks or steps we want
if (!objHasProperty(scope, attrs.ngModel)) {
alert("using ng-model value '" + attrs.ngModel +"' that wasn't defined first!"
}
};
};
return $delegate;
}]);
}])
Это проверит определение значения модели ng в области управления и предупреждения, если оно не установлено.
См. Рабочий jsfiddle, как это может занять опечатка.
Я не тестировал это и не думал обо всех сценариях, поэтому возможно, что это действительно что-то сломалось ... Я также не знаю, как это будет касаться поиска attrs, которые определены в области родителя.
Также см. this nice blog post для получения дополнительной информации о директивах по декорированию.
Вы должны убедиться, что ваши данные действительны в вашем контроллере – Ven
Я хочу знать, получили ли переменные имена из-за синхронизации между представлением и контроллером/областью –
, как это могло произойти? – Ven