Angular UI Bootstrap 无法将文本框值获取到控制器

Angular UI Bootstrap unable to get textbox value to controller

我想获取用户在文本框中输入的 search_name 的值。谁能指出错误。

 <div ng-controller="AccordionDemoCtrl">
  <uib-accordion close-others="oneAtATime">
    <uib-accordion-group heading="Search">
        <p class="form-group">
            <label>Search Name</label>
            <input type="text" ng-model="search_name" class="form-control">
        </p>
        {{search_name}}</br>
        <button type="button" class="btn btn-default btn-sm" ng-click="Myfunc()">Search</button>
        <table ng-table="tableParams" class="table table-striped"   fixed-table-headers="scrollable-area">
            <dir-pagination-controls max-size="5" direction-links="true" boundary-links="false" > </dir-pagination-controls>
                <tr>
                    <td>Index </td>
                    <td>Name</td>
                    <td>ID</td>
                </tr>
                    <tr ng-repeat="x in names "  >
                    <td>{{ $index + 1 }} </td>
                    <td>{{ x.NAME }}</td>
                    <td>{{ x.ID }}</td>
                </tr>
        </table>
    </uib-accordion-group>
  </uib-accordion>
</div>
<script type="application/javascript">  
angular.module('ui.bootstrap.demo', ['ngAnimate', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('AccordionDemoCtrl', function ($scope) {
  $scope.oneAtATime = true;
  $scope.names= {0:{'NAME':'John','ID':'albania'}}; 

  $scope.Myfunc = function() {
    console.log($scope.search_name)
    console.log($scope.names)
  };

当我记录值时,它显示未定义。

您是否将 $scope.Myfunc = function() 更改为 $scope.Myfunc = function(search_name) ?

您需要将 search_name 传递到您的控制器函数中。这需要 2 处更改。

控制器

  $scope.Myfunc = function(search_name) {
    console.log(search_name);
    console.log($scope.names);
  };

HTML

    ng-click="Myfunc(search_name)"