-2
<form class="form-horizontal" role="form" name="addCreditoBuscar" id="addCreditoBuscar" ng-controller="AddCreditoAppController"> 
<div class="form-group"> 
    <label class="col-sm-2 col-sm-2 control-label">Buscar</label> 
    <div class="col-sm-10"> 
    <input type="text" class="form-control" name="buscar" ng-model="addCreditoBuscar.buscar" ng-required="true" placeholder="Buscar por cedula, nombre o apellido"> 
    <span class="help-block" ng-show="addCreditoBuscar.buscar.$error.required">Este campo es requerido es requerido.</span> 
    </div> 
    </div> 
</form> 

Это мой код для ввода текста, но результат этого - http://prntscr.com/73otmc[[объект Object]] при вводе текста angularjs

+4

Вы получаете это как 'addCreditoBuscar.buscar' является объектом. – Satpal

+0

Возможный дубликат [Доступ/процесс (вложенные) объекты, массивы или JSON] (http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json) – charlietfl

+0

поставьте это рядом с вводом и посмотреть, как выглядит объект в представлении '

{{addCreditoBuscar.buscar | json}}
' – charlietfl

ответ

0

Вашего входной элемент принуждение Предоставленного значения в строку , Ваше значение является объектом, поэтому оно принуждает его к строковому значению этого объекта ([[object Object]]).

Для того, чтобы исправить это, вам необходимо получить доступ к объекту этого объекта.

ng-model="addCreditoBuscar.buscar" является объектом, поэтому он будет отображаться как [[object Object]], а что-то вроде Object.prototype.toString() действует на объект для того, чтобы принудить его к значению строки в вашем input элементе.

Например:

var obj = { 
    someProp: 'someVal' 
}; 

console.log(''+a); // => "[object Object]" 

выше демонстрирует строку принуждения от объекта.

Если вы хотите, чтобы показать свойство из этого объекта, просто используйте атрибут объекта аксессор (точка .):

addCreditoBuscar.buscar.whateverProperty 

Таким образом, всякий раз, когда ваш input элемента принуждает свойство значения, если значение является строкой, он будет отображаться в виде строки (которая является вашим целевым выходом):

console.log(''+a.someProp); // => "someVal" 
0

Вы можете стереть отображаемое значение явным образом изменить значение свойства HTMLElement.value при каждом изменении вашей модели значения. Вы можете создать директиву для обработки этого.

app.directive('labelField', function() { 
    return { 
     restrict: 'AE', 
     link: function ($scope, element, attrs) { 
      $scope.$watch(attrs['ngModel'], function (newValue) { 
       if (newValue) { 
        element[0].value = newValue[attrs['labelField']]; 
       } 
      }) 
     } 
    } 
}) 

использовать его пропускание поля для отображения в директиве

<input type="text" ng-model="myobject" label-field="myfield"> 

Э.Г. хранить в $scope.user объект как {name:"John","email":"[email protected]"}, вы должны использовать его так:

<input type="text" ng-model="user" label-field="name"> 
3

Решение простое. Вы используете то же имя формы, что и объект, который хотите поместить. Изменение «имя формы» на один другой, как имя = «formAddCreditoBuscar»

<form class="form-horizontal" role="form" name="formAddCreditoBuscar" id="addCreditoBuscar" ng-controller="AddCreditoAppController"> 

Тогда ваша проблема исчезнет

+0

Лучший ответ здесь. – C0ZEN

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