я следующий код, который не работает, как ожидалось, может быть, потому что я новичок на угловой :)Angularjs: Звонок завод дважды на одном контроллере
Я хочу, чтобы повторно вызвать тот же фабричную функцию всякий раз, когда я добавляю новую запись в мою базу данных, потому что эта фабрика даст мне данные БД, обновленные для выполнения моей таблицы html.
Вопрос
Фабрика функция GetData() не вызывается во второй раз, так что я не смог обновить свой $ scope.dataTable
код контроллера
.controller('SomeViewController', function($scope, $routeParams, getData, addData) {
//scope new record
$scope.newRecordName = "";
$scope.newRecordType = "";
//to fulfill html record's table
getData.then(function(result){
$scope.dataTable = result
})
// submit button calls this
$scope.addRecord = function(){
addData.record($scope.newRecordName, $scope.newRecordType).then(function(result) {
if (result == "OK") {
//refresh scope dataTable
getData.then(function(result){
$scope.dataTable = result
})
}
})
}
завод код
factory('getData', function($http) {
return $http.get('some/url/')
.then(function(response) {
return response
})
})
.factory('addData', function($http) {
return {
record: function(name, type) {
return $http.post('some/url', {Name: name, Type: type})
.then(function(response) {
return response
})
}
}
})
Примечание я не могу использовать $ scope.dataTable.push («new_record_here»), потому что его не хватает идентификатор записи, то из базы данных, и мне нужно, что есть таблица, как: ID/Имя/Тип
Спасибо большое
Спасибо за ответ. Это решило мою проблему. Кажется, что служба (dataFactory) не может быть вызвана более одного раза, однако, если мы создадим сервисную функцию (в этом примере dataFactory.getData), это можно вызвать более одного раза. Еще раз спасибо –