在控制器中获取ngModel值- AngularJS

Getting ngModel value in controller - AngularJS?

本文关键字:AngularJS ngModel 获取 控制器      更新时间:2023-09-26

一旦submitPlayer被点击,玩家的名字就会被提醒,我也想要相应的玩家id。

<div class="row">
   <div class="input-field col s12">
     <input id="search" class="search nomargin" type="text" class="validate dark" ng-model="player">
     <label for="search"><i class="fa fa-search" aria-hidden="true"></i> Search Player</label>
   </div>
 </div>
     <div class="searchresultsbox z-depth-1">
       <div class="row nopad nomargin">
     <div class="col s12 nopad nomargin">
           <ul ng-repeat="eachPlayer in player |filter:search">
             <li>{{eachPlayer.name}}</li>
           </ul>
        </div>
       </div>
     </div>
<div class="modalbuttongroup">
    <a href="" class="center waves-effect waves-light btn addplayer" ng-click="submitPlayer()">ADD PLAYER</a>
</div>

模块和控制器

var app = angular.module('playerapp', []);
app.controller("myController", function ($scope) {
    $scope.player=
    [
         {
          "id": "57f2ade2d9913939d0de4af8",
          "name": "A Team Player"
         },
         {
          "id": "57f3d03fd99139333880a2f8",
          "name": "B Team Player"
         },
         {
          "id": "57f3d05ad99139333880a2fa",
          "name": "C Team Player"
         },
         {
          "id": "57f3fff6d991394b3daa2d49",
          "name": "D Team Player"
         },
         {
          "id": "57f422d6d991390ea392762e",
          "name": "E Team Player"
         }
    ]
    $scope.submitPlayer = function() {
        alert(JSON.stringify($scope.player,null,5))
    };
});

另外,我希望球员的名字显示在文本框中,一旦球员被选中,当点击"添加球员",我希望球员ID被提醒。

你的代码有几个问题,

(i)你使用player作为搜索值,这是一个集合,所以它应该被改变。

  <input id="search" class="search nomargin" type="text" class="validate dark" ng-model="player.name">

并用作过滤器,

<ul ng-repeat="eachPlayer in player |filter:player.name">

没有办法选择播放器与你的html代码,所以我添加了一个单选输入按钮来选择播放器,并分配给一个范围变量。

  <input type="radio" ng-model="selected" name="rdbRisk" ng-change="Assign(selected)" ng-value="eachPlayer" /> {{eachPlayer.name}}