javascript - 如何在 ngRepeat (AngularJS) 中重复点击处理程序?

标签 javascript angularjs angularjs-ng-repeat

我遇到以下问题。我想重复菜单链接。但程序不会创建相应的点击处理程序。

查看:

//view is created by Angular Material
<md-menu-item ng-repeat="mItem in ::menuItems">
    <md-button ng-click="mItem[action]">
        <md-icon>{{ ::mItem.icon }}</md-icon>
        {{ ::mItem.name }}
    </md-button>
</md-menu-item>

Ctrl:

$scope.menuItems = [
        { icon: 'mode_edit', name: 'Edit', action: 'clickEdit()' },
        { icon: 'delete', name: 'Delete', action: 'clickDelete()' }
    ];

$scope.clickEdit = clickEdit;
$scope.clickDelete = clickDelete;

    function clickEdit() {
        $log.info('edit clicked');
    }

    function clickDelete() {
        //code...
    }

我需要做什么才能在 ngClick 中获取处理程序?

最佳答案

我认为最好将该逻辑保留在这样的服务中:

//view is created by Angular Material
<md-menu-item ng-repeat="mItem in ::menuItems">
    <md-button ng-click="action(mItem.action)">
        <md-icon>{{ ::mItem.icon }}</md-icon>
        {{ ::mItem.name }}
    </md-button>
</md-menu-item>

$scope.menuItems = [
    { icon: 'mode_edit', name: 'Edit', action: 'edit' },
    { icon: 'delete', name: 'Delete', action: 'delete' }
];

$scope.action = function(actionName){
   // call service
}

关于javascript - 如何在 ngRepeat (AngularJS) 中重复点击处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40835141/

相关文章:

javascript - AngularJS post 失败,jQuery ajax 也失败。无 CORS

angularjs - 在 AngularJS 中突出显示过滤结果

javascript - 如何在 IE Windows Mobile 5 中向 <SELECT> 添加选项

javascript - Angular 单元测试 - httpBackend JSONP

javascript - 如何设置图像路径的样式

javascript - 如何从 Angular route 完全删除#标签?

javascript - angularjs ng-重复来自不同 i18n 文件的下拉值

angularjs - ng 重复模板导致 404(未找到)

javascript - jquery 相当于 getcompulatedstyle()

javascript - 无法从 jquery get 函数访问外部变量