2015-07-11 4 views
0

Почему нажатие кнопки добавляет две пустые строки на страницу html, а не соответствующую цитату?Угловая модель не регистрируется

Услуга:

quotes.addData = function(quote){ 
    quotesArr.push(quote); 
} 

Контроллер:

$scope.quoteToAdd = { 
    author : $scope.quoteAuthor, 
    text: $scope.quoteText 
    }; 
$scope.addQuote = quoteService.addData; 
} 

HTML:

Author :<input type="text" ng-show="showAdd" ng-model='quoteAuthor' name="name" value=""> 

    Quote:<input type="text" ng-show="showAdd" ng-model='quoteText' name="name" value=""> 

    <button ng-click='addQuote(quoteToAdd)' ng-show="showAdd" type="button" name="button">Submit</button> 
+0

$ scope.addQuote = quoteService.addData; не имеет смысла, ваша служба ничего не возвращает – gr3g

+0

не могли бы вы предоставить полный код и, кроме того, вернуть массив из службы? –

+0

Я должен был сказать, что это фабрика, а не сервис. Я попытался опубликовать больше кода и не смог, но функция $ scope.remove = quoteService.removeData работает нормально - фабрика работает и возвращает объект. – R678

ответ

2

У вас есть неправильные нг-модель привязки в вашей форме:

Author :<input type="text" ng-show="showAdd" ng-model='quoteToAdd.author' name="name" value=""> 

    Quote:<input type="text" ng-show="showAdd" ng-model='quoteToAdd.text' name="name" value=""> 

    <button ng-click='addQuote(quoteToAdd)' ng-show="showAdd" type="button" name="button">Submit</button> 

Вышеупомянутый код, который вы имеете, поскольку объект контроллера инициализируется значением свойств области не по ссылке. Новый контроллер, указанный ниже, должен работать для того, что вы хотите сделать.

Controller (новый):

$scope.quoteToAdd = { 
    author : null, 
    text: null 
    }; 
$scope.addQuote = quoteService.addData; 
} 

контроллер (старый):

$scope.quoteToAdd = { 
    author : $scope.quoteAuthor, 
    text: $scope.quoteText 
    }; 
$scope.addQuote = quoteService.addData; 
} 
+0

Awesome, отличное объяснение. – R678

+0

Нет проблем, дайте мне знать, если у вас есть другие угловые вопросы. – dmcqu314

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