在 angularjs 中单击多个按钮的替代方法

Alternative approach for multiple button click in angularjs

我只是想知道是否有更好的方法来处理与下面相同的逻辑。单击它的 4 个按钮必须将(英语、德语、西班牙语、法语)等参数发送到 angular 函数。有没有可能通过使用模型绑定或数组或枚举来减少这里的代码重复?

即使是以下方法也可能是也可能不是处理它的最佳方法。由于我不太精通 angular,所以我不确定是否有更好的替代方法。请指教

基本上有什么方法可以更好地实现相同的逻辑??

注意:我使用的是angular1.7.2版本

<!DOCTYPE html>
            <html>
                <head>
                    <title>Demo</title>
            <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>

                <script>
                    var app = angular.module('app', []);
                    app.controller('myController', ['$scope', function($scope) {
                    $scope.Language = 'German';
                        $scope.Preference = function(lang) {
                           $scope.Language = lang;
                        };  

                    }]);
                </script>
                </head>
            <body>
                    <h2>Attach functions or behavior - AngularJS</h2>
                <div ng-app="app" ng-controller="myController">
                Click 
                <button ng-click="Preference('English')">English</button>
        <button ng-click="Preference('German')">German</button>
        <button ng-click="Preference('Spanish')">Spanish</button>
        <button ng-click="Preference('French')">French</button>
                <p>I like {{ Language}}</p>
                </div>
            </body>
            </html>

您可以对按钮使用 ng-repeat,对值使用数组。您还可以通过使用 ng-click 设置所选值来避免使用函数:

<button ng-repeat="lan in vm.languages" ng-click="vm.Preference(lan)">{{lan}}</button>

查看演示:DEMO