范围变成变量 - Javascript

时间:2016-12-13 03:00:33

标签: javascript angularjs angularjs-scope

我有一个文本框,可以将用户输入传递到$ scope。我需要将其进一步传递到firebase查询中,但是我无法获取变量来注册存储在$ scope中的输入。代码:

  $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>

提前致谢!

2 个答案:

答案 0 :(得分:0)

无论您在html中命名模型,都需要在javascript中命名。

我看到你将它命名为ng-model="customQuote"。因此,您应该在javascript中以$scope.customQuote的形式访问它。

此外,您正在将模型初始化为null。不要那样做,而是这样声明:

 $scope.customQuote = "";

答案 1 :(得分: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) {};