Мне нужна помощь, пожалуйста. Я работаю с AngularJS и угловым материалом. Я пытаюсь нажать объект на массив, но он отправляет мне сообщение «$ scope.myArrayOfObject.push не является функцией».
Мой код:
controller("ClientesCTRL",function($scope,$http,$q,$timeout,$location, datosFactory, userFactory, $mdDialog){
$scope.clientes = [];
user = userFactory.getUser();
if(user){
$scope.selected = [];
$scope.query = {
filter : '',
order: 'rut',
limit: 5,
page: 1
};
var data = {'op':1, 'rut' : user.rut};
$http.post('functions/ClientesCTRL.php', data)
.success(function(results){
console.log(results);
$scope.clientes = results;
});
$scope.onpagechange = function(page, limit) {
var deferred = $q.defer();
$timeout(function() {
deferred.resolve();
}, 2000);
return deferred.promise;
};
$scope.onorderchange = function(order) {
var deferred = $q.defer();
$timeout(function() {
deferred.resolve();
}, 2000);
return deferred.promise;
};
$scope.verContacto = function(){
datosFactory.setClienteContacto($scope.selected[0]);
$location.path("/contactos")
};
$scope.eliminarCliente = function(ev) {
// Appending dialog to document.body to cover sidenav in docs app
var confirm = $mdDialog.confirm()
.title('Eliminar Clientes')
.content('Estás seguro?')
.ariaLabel('Lucky day')
.targetEvent(ev)
.ok('Eliminar')
.cancel('Cancelar');
$mdDialog.show(confirm).then(function() {
alert("Cliente eliminado");
}, function() {
});
};
$scope.addCliente = function(ev){
$mdDialog.show({
controller: AddClienteController,
templateUrl: 'addClienteForm.html',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose:true
})
.then(function(c) {
console.log(c);
var data = {'op':3, 'cl' : c, 'user':user};
console.log(data);
$scope.clientes.push(c);
$http.post('functions/ClientesCTRL.php', data)
.success(function(results){
if(results){
alert("Cliente agregado");
$scope.clientes = [];
$scope.clientes.push(c);
}else{
alert("Error al agregar cliente");
}
console.log(results);
});
}, function() {
$scope.status = 'You cancelled the dialog.';
});
};
function AddClienteController($scope, $mdDialog, $http) {
$http.post("functions/UsuarioCTRL.php",{'op':14})
.success(function(results){
if(results !== null){
$scope.formaspago = results;
}
});
$scope.hide = function() {
$mdDialog.hide();
};
$scope.cancel = function() {
$mdDialog.cancel();
};
$scope.btnAddCliente = function() {
$mdDialog.hide($scope.addCliente);
};
};
}
<md-dialog style="width:600px;" aria-label="Agregar Cliente" ng-cloak>
<form>
<md-toolbar>
<div class="md-toolbar-tools">
<h1 style="letter-spacing:3px; text-transform:uppercase"><i class="fa fa-user"></i> Agregar Cliente/Empresa</h1>
<span flex></span>
<md-button class="md-icon-button" ng-click="cancel()">
X
</md-button>
</div>
</md-toolbar>
<md-dialog-content style="max-width:800px;max-height:810px; ">
<div class="md-dialog-content">
<md-input-container flex>
<label>Rut Cliente/Empresa</label>
<input ng-model="addCliente.rut" required="true">
</md-input-container>
<md-input-container flex>
<label>Razón Social</label>
<input ng-model="addCliente.razon_social" required="true">
</md-input-container>
<md-input-container flex>
<label>Nombre de fantasía</label>
<input ng-model="addCliente.fantasia" required="true">
</md-input-container>
<md-input-container flex>
<label>Giro</label>
<input ng-model="addCliente.giro" required="true">
</md-input-container>
<md-input-container flex>
<label>Teléfono</label>
<input ng-model="addCliente.telefono">
</md-input-container>
<md-input-container flex>
<label>Dirección</label>
<input ng-model="addCliente.direccion" required="true">
</md-input-container>
<md-input-container flex>
<label>Comuna</label>
<input ng-model="addCliente.comuna" required="true">
</md-input-container>
<md-input-container flex>
<label>Observación</label>
<textarea ng-model="addCliente.observacion" rows="4"></textarea>
</md-input-container>
<md-input-container flex>
<label>Forma de pago</label>
<md-select ng-model="addCliente.forma_pago">
<md-option ng-repeat="fp in formaspago" value="{{fp.forma}}">
{{fp.forma}}
</md-option>
</md-select>
</md-input-container>
</div>
</md-dialog-content>
<div class="md-actions" layout="row">
<span flex></span>
<md-button ng-click="btnAddCliente()" style="margin-right:20px;" >
Agregar Cliente
</md-button>
</div>
</form>
</md-dialog>
Помогите мне пожалуйста. Grettings!
Какая строка вызывает проблему –
$ scope.clientes.push (c); Внутренняя функция addCliente – rottencit0p