繁体   English   中英

如何获取输入值并将其放入angularJS中的变量?

[英]How can I take a input value and put into a variable in angularJS?

如何获取输入值并将其放入angularJS中的变量? 这是我页面上的工作测试版本,但我与AngularJS一起使用了javascript和jquery使其工作,但仍然给我错误。 我知道必须有一种方法来获取输入值,并通过angularJS将其放入var值中,而无需手动编写它的操作方式。

http://www.jaysg.com/poster

index.html

<div class="header">
            <div class="container">
                <div class="row">
                    <div class="col-md-12">

                        <h1>Find That Poster</h1>

                        <div class="searchbox">
                            <button ng-click="start()" class="searchButton" id="btnSearch" value="Search">Search</button>
                            <p></p>
                        <input onkeydown="if (event.keyCode == 13) document.getElementById('btnSearch').click()">

                        </div>

                    </div>
                </div>
            </div>

      </div>




      <div class="content" ng-controller="StoreController as store">
        <div class="container"> 
        <div class="row">
      <div >

        <div class="col-md-3 posterImg" ng-repeat="product in store.products.results">

                    <span><img ng-src="http://image.tmdb.org/t/p/w300{{product.poster_path}}" class="img-responsive"></span>

                    <div >

              <!-- <h2> {{product.original_title}}</h2>-->




                </div>




      </div>


      </div>
      </div>


            </div>

            </div>
      </div>


            </div>

app.js //角度

(function() {
    var app = angular.module('store', ['store-products']);//main app ng-app

    app.controller('StoreController',[ '$http', function($http){

        var store = this;

        store.products = [ ];

        $(document).ready(function() {
            $( "input" ).keyup(function() {
                    var value = $( this ).val();




            $('button').click(function() {

        $http.get("http://api.themoviedb.org/3/search/movie?api_key=2f6ab7c6dc3db52d34703aae308640ef&query=" + value ).success(function(data){

            store.products = data;

        });

    });
                 })
                  .keyup();
        });

                          }]);


    })();

您需要ng-model属性。

例:

<input onkeydown="if (event.keyCode == 13) document.getElementById('btnSearch').click()" ng-model="search">

然后,您可以使用$scope.search访问变量。

如我所见,您当前未注入$ scope。 这是怎么做的:

app.controller('StoreController', ['$scope', '$http', function($scope, $http){

文档中查看更多。

建议将您的jquery事件处理程序重写为angular事件处理程序。 因此,代替$('button').click(function() { ,创建绑定到搜索按钮的click事件的$scope.start()函数。

使用ng-model获取变量的值并使用ng-keydown监听按键

<div class="searchbox">
   <button ng-click="search()" class="searchButton" id="btnSearch" value="Search">Search</button>
      <p>
      </p>
      <input ng-keydown="press($event)" ng-model="searchField" >   
 </div>

然后在控制器中调用刚绑定到dom元素的函数

app.controller('StoreController', [
'$scope',
'$http',
function ($scope, $http) {
    $scope.press = function (e) {
        console.log(e.keyCode);
        if (e.keyCode == 13) {
            $scope.search();
        }
    };
     $scope.search = function (e) {
          $http.get("http://api.themoviedb.org/3/search/movie?api_key=2f6ab7c6dc3db52d34703aae308640ef&query=" + $scope.searchField )
           .success(function(data){

        $scope.products = data;

    });
    };

}
]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM