2015-08-24 2 views
1

У меня есть <input type="text" ng-model="authorid"> в моем html, он автоматически обновляется, когда пользователь обновляет другое поле в форме. Он отлично работает в HTML, однако пытается получить доступ к AuthorID от контроллера он всегда получает неопределенныйДоступ к ng-модели от контроллера, получающего undefined

console.log($scope.authorid); 

... любые идеи, пожалуйста?

Я пробовал множество решений здесь, и никто не работал, особенно, что я не хочу добавлять другой метод для его установки. Любые идеи, пожалуйста?

+4

Пожалуйста, пост ваш код –

+0

вы нарушаете золотое правило отсутствия *** точки *** в 'ng-model'. Это означает, что это объект и, следовательно, имеет наследование, которое нет у примитива. Из-за этого вы, вероятно, теряете привязку к 2 способам из-за этого – charlietfl

+0

Я пробовал это также, выполнив две вещи: '' и в моем контролируемом я сделал две вещи: '$ scope. myform = {}; ' ' console.log ($ scope.myform.authorid); ' все еще становится неопределенным .. –

ответ

1

Проведя большое количество часов, пытаясь понять, что происходит. Я нашел ответ здесь: AngularJS update input manually does not trigger change in the model

, который в основном привел меня, чтобы написать следующий код и установил его:

var e = document.getElementById("field"); 
e.value = "my updated value"; 
var $e = angular.element(e); 
$e.triggerHandler('input'); 

Благодаря @Fresheyeball и благодарит всех за попытку помочь, а

0

Вы должны следовать лучшей практике и сделать свой `authorid 'переменной object.property.

первым, определяют в контроллере, что-то вроде:

$scope.form = {}; 

то в вашем HTML, сделайте следующее:

<input type="text" ng-model="form.authorid"> 

Это происходит потому, что в AngularJS, ребенок сфера обычно прототипически наследует от своих родителей объем.

+0

Я сделал это согласно моему комментарию выше и до сих пор не в состоянии получить его значение. –

+0

Возможно, вам стоит написать свой код. –

Смежные вопросы