У меня возникает странная проблема, после того как я привяжу объект в контроллере к области $ scope, любые дальнейшие изменения объекта не будут отражено в представлении.AngularJS v1.3.13: Изменение данных в контроллере не отражается в представлении
вот мой код:
Вид:
<input id="search-input" type="text" ng-model="model.keywords" />
<span class="tool" ng-click="methods.clearInput()"></span>
Контроллер:
angular.module('app').controller('someController', function($scope) {
var model = {
keywords: ''
};
var methods = {
clearInput: function() {
model.keywords = '';
}
};
$scope.model = model;
$scope.methods = methods;
}
вход очищается только один раз на первый щелчок, после этого - нажав на четкий элемент делает ничего. Я попытался обертывание изменения с $ объемом $ применяется() следующим образом:.
clearInput: function() {
$scope.$apply(function() {
model.keywords = '';
});
}
Но изменения все еще не отражены в представлении. Я знаю, что могу внести изменения в переменную $ scope, но зачем использовать двустороннюю привязку для начала?
Мой вопрос: как правильно связать переменные контроллера с областью & есть изменения, внесенные в контроллер, отраженные в представлении?
Я не понимаю эту проблему. У меня нет проблем с запуском вашего кода. Что вы меняете в контроллере, который не отображается в представлении? Используя свой код, всякий раз, когда я ввожу текст, и нажимаю элемент span/run 'clearInput()', он очищает следующий (а не только в первый раз). –
Вы правы. проблема была в селекторе CSS –