Angularjs ng更改方法未执行

Angularjs ng更改方法未执行,angularjs,ng-options,angularjs-ng-change,Angularjs,Ng Options,Angularjs Ng Change,我正在尝试传递在中选择的对象以更新另一个对象的数据。 这是html <select id="categoryListBox" ng-model="category.selected" ng-change="updateCategory(category.selected)" ng-options="category._id as category.name for category in c

我正在尝试传递在中选择的对象以更新另一个对象的数据。 这是html

  <select id="categoryListBox"
                ng-model="category.selected"
                ng-change="updateCategory(category.selected)"
                ng-options="category._id as category.name for category in categories">
        </select>
我的问题是,当所选项发生更改时,updateCategory方法不会触发。我希望在
中选择的选项更改我的$scope.updateCategory方法时触发。如果我能将所选类别传递给此方法,那也太棒了

这里更新的是填充数组类别的my初始化

$scope.init = function (){
            console.log('dfakjsdhf');
            console.log(apiUrl);
            $scope.category = {};
            $scope.subcategory = {};
            //$scope.categories = {_id: 1, name:'test'};

            $http({ method: 'GET', url: apiUrl + '/categories'}).
                success(function (data, status, headers, config) {
                    $scope.categories = data;
                    console.log($scope.categories);

                }).
                error(function (data, status, headers, config) {
                    console.log('error');
                });


        };

无需传递函数中所选的category.selected。在js控制器中,它将位于您的作用域中,只需在updateCategory()函数中使用它即可

Html:


只需将您的ng模型从
类别中重命名。所选的
为其他类型。根据我的理解,在您的代码中,ng选项类别和ng模型类别之间存在歧义



控制台日志(hi);当从html和中的两个函数中删除参数时,不会显示controller@AustinDavis检查我添加的JSFIDLE,在您的问题中,我仍然看到html通过所选类别,但函数没有任何输入。
$scope.updateCategory = function(){
    console.log('hi');
}
$scope.init = function (){
            console.log('dfakjsdhf');
            console.log(apiUrl);
            $scope.category = {};
            $scope.subcategory = {};
            //$scope.categories = {_id: 1, name:'test'};

            $http({ method: 'GET', url: apiUrl + '/categories'}).
                success(function (data, status, headers, config) {
                    $scope.categories = data;
                    console.log($scope.categories);

                }).
                error(function (data, status, headers, config) {
                    console.log('error');
                });


        };
<select id="categoryListBox"
            ng-model="category.selected"
             ng-change="updateCategory()"
            ng-options="category.id as category.name for category in categories">
    </select>
$scope.updateCategory = function(){
    alert($scope.category.selected);
}
<select id="categoryListBox"
            ng-model="categorymodel"
            ng-change="updateCategory(categorymodel)"
            ng-options="category.id as category.name for category in categories">
    </select>