У меня есть директива, в которой модель не обновляется, как я думаю, она должна быть. Вот мой HTML:Угловая модель не обновляется - Angular.js
<div class="text-area-container">
<textarea ng-model="chatText" ng-keyup="updateCount(chatText)"></textarea>
</div>
<input ng-disabled="disableCommentButton()" value="Comment" ng-click="addMessage(chatText)"/>
Как вы можете видеть, у меня есть ng-model
прикрепленного к <textarea>
. Я не знаю, влияет ли это на что-либо, но у меня также есть привязанный к элементу ng-keyup
, который берет модель и смотрит, сколько символов в ней. Последний фрагмент: у меня есть ng-disable
на входе, который оценивается функцией. Вот мой link
функция моей директивы:
link: function(scope) {
scope.chatText = '';
scope.countRemaining = 500;
scope.updateCount = function(chatText) {
scope.chatText = chatText;
scope.countRemaining = scope.maxChatCount - chatText.length;
};
scope.disableCommentButton = function() {
return _.isUndefined(scope.encounter) || _.isEmpty(scope.chatText);
};
}
Проблема заключается в том, что мой scope.chatText
всегда определено в методе disableCommentButton
. Я думал, что, присоединив модель к элементу в html
, у меня будет доступ к нему в области видимости. Что мне здесь не хватает?
Почему это работает? 'scope.encounter' работал, но' scope.chatText' не работал. Я не знаю, имело ли значение 'scope.chatText' ранее в файле какое-либо отношение к нему. – jhamm
с областью действия, являющейся глобальной переменной во время объявления вашей функции, она ссылалась на устаревшую область. ссылаясь на это внутри функции, ссылается на новый объект области видимости. – Jason
Итак, сфера изменений меняется? Когда масштаб становится устаревшим? – jhamm