角度材质关闭过程参数时选择md

Angular Material Select md-on-close Pass Parameter

本文关键字:参数 选择 md 过程      更新时间:2023-09-26

我想将一个参数传递给关闭时具有Angular Material Select md的函数。

使用我当前的代码,当我做控制台日志时,会返回undefined

到目前为止我所拥有的。

html

<md-input-container>
    <label>Season</label>
    <md-select  name="season"
                ng-model="cteam.season"
                md-on-close="cteam.getid(season.$id)">
        <md-option ng-repeat="season in cteam.seasons | orderBy: 'name'" value="{{season.name}}">
            {{season.name}}
        </md-option>
    </md-select>
</md-input-container>

控制器

(function() {
    angular
        .module('app')
        .controller('CreateTeamController', function() {
            var vm = this;
            vm.getid = function(id) {
                console.log(id);
            };
        });
})();

更新(添加app.js代码)app.js

(function() {
    angular
        .module('app', [
            'ngRoute',
            'ngMaterial',
            'ngMessages',
            'firebase'
        ])
        .config(function($routeProvider, $mdThemingProvider){
            $mdThemingProvider
                .theme('default')
                .primaryPalette('deep-purple');
            $routeProvider
                .when('/', {
                    templateUrl: 'views/main.html',
                })
                .when('/create/team', {
                    templateUrl: 'views/create-team.html',
                    controller: 'CreateTeamController',
                    controllerAs: 'cteam',
                })
                .otherwise({
                    redirectTo: '/',
                });
        });
})();

请参阅md-on-close="cteam.getid(season.$id)"中的季节并不是指您在ng重复中使用的季节。ng repeat创建了一个新的作用域,并且您正在它的父作用域中调用该函数。

但您告诉md select,您希望将"selected"季节绑定到ng-model="cteam.season"中的cteam.season。

您所要做的就是将md-on-close属性更改为md-on-close="cteam.getId(cteam.season.$id)"ng-model中引用的任何属性。