select 上的 ng-change 抛出错误

ng-change on select throwing an error

HTML

            <tr dir-paginate="sale in payments | itemsPerPage: 6">
                <td>{{sale.date}}</td>
                <td>{{sale.transaction_id}}</td>
                <td>{{sale.artist_details.seller_num}}</td>
                <td>{{sale.artist_details.name}}</td>
                <td>{{sale.exc_vat}} Kr</td>
                <td>{{sale.total_price}}</td>
                <td><select ng-change="released()" ng-options="released.item  for released in releasedSeller.options" ng-model="released" ></select><span>{{released.item}}</span></td>
            </tr>

控制器

 $scope.released=function() {
        console.log('pending');
    }
    $scope.releasedSeller = {
        options : [{
                item: 'Pending'
                }, {
                item: 'Released'
            }]
    }

我正在使用 ng-change 调用 selectbox 中的函数。但是我可以获得选项数据,它正在包装控制器,我在这里从 controller.i 获取支付数据我通过在 app.js (ui-路由器)中提及来使用控制器但是当我 select 某些选项时,它会抛出如下错误。

angular.js:13236 TypeError: v2.released is not a function
at fn (eval at compile (angular.js:14086), <anonymous>:4:215)
  • 确保您的控制器包含 html 代码
  • 检查您的代码是否如下所示。
  • 确保您的 app/controllers 包含在您的 index.html

var app = angular.module('app', []);
app.controller('DemoCtrl', function($scope) {
  $scope.items = [{
    'name': 'a'
  }, {
    'name': 'b'
  }, {
    'name': 'c'
  }, {
    'name': 'd'
  }];
  $scope.showSelected = function() {
    $scope.selectedItem = $scope.itemModel;
  };
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<body ng-app="app">
  <div ng-controller="DemoCtrl">
    <select ng-options="item.name for item in items" ng-change="showSelected(item)" ng-model="itemModel"></select>
    <h5> Selected item: {{selectedItem}}</h5>
  </div>
</body>

我认为您正在使用 ng-controller 作为语法,所以出现此错误 v2.released 不是函数

将 v2.released 更改为刚刚在您的 html 文件中发布

当您在 "released" 变量中绑定所选值时,这将在范围内创建一个新变量并覆盖您在控制器中编写的旧 "released"(函数)。

错误的方式:

ng-改变="released()"

ng-模型="released"

正确的方法:

ng-改变="released()"

ng-模型="selectedReleased"

<select ng-change="released()" ng-options="released.item  for released in releasedSeller.options" ng-model="selectedReleased" ></select>

我想这就是导致错误的原因。