2016-12-13 6 views
-1

У меня есть текстовое поле, которое передает пользовательский ввод в $ scope. Мне нужно передать это дальше в запрос firebase, но им не удалось получить переменную для регистрации ввода, хранящегося в $ scope. Код:scope in variable - Javascript

$scope.array = []; 

$scope.addListItem = function(quote){ 
$scope.array.unshift(quote); 
console.log(quote) 
this.customQuote = null; 
}; 

    var prefix = 'tags/' 
    var userInput = console.log($scope.array) 

    var search = prefix + userInput 


    firebase.database().ref('products').orderByChild(search).equalTo(true).once('value', function(products) 

И HTML:

<form ng-submit="addListItem(customQuote)" name="customQuoteForm"> 
      <div class="item item-input-inset"> 
      <label class="item-input-wrapper"> 
       <input type="text" placeholder="placeholder content" ng-model="customQuote" required> 
      </label> 
      <button class="button button-small" ng-disabled="customQuoteForm.$invalid"> 
       Submit 
      </button> 
      </div> 
     </form> 

Заранее спасибо!

+0

Что вы имеете на HTML? –

+0

добавил html, спасибо – MacD

ответ

0

Что бы вы ни назвали модель в html, вам нужно называть ее в javascript.

Я вижу, что вы назвали его ng-model="customQuote". Поэтому вы должны получить к нему доступ как $scope.customQuote в javascript.

Также вы инициализируете модель как null. Не делайте этого, вместо того, чтобы объявить его как это:

$scope.customQuote = ""; 
+0

Пример действительно работает отлично, поскольку передача данных из формы в массив, однако я не могу получить его обратно для использования в переменной. например, «console.log (quote)» возвращает значение из текстового ввода. Я все еще что-то пропустил? – MacD

+0

@MacD Вам не нужно иметь два customQuotes. Тот, что находится в 'ngModel', в порядке. Не нужно добавлять другого в метод отправки. –

+0

Получил это, да, это имеет смысл. – MacD

0

решаемые это просто перемещая переменную и firebase запрос внутри функции ..

 $scope.addListItem = function(quote){ 
     $scope.array.unshift(quote); 
     console.log(quote) 
     var tag = quote 
     var text = 'tags/' 

     var search = text + tag 
     console.log(search) 

     firebase.database().ref('products').orderByChild(search).equalTo(true).once('value', function(products) {};