如何在angularjs中获取锚标记的id?

时间:2017-04-19 11:07:06

标签: javascript angularjs anchor

您好我正在开发Angularjs应用程序。我有动态生成的锚标记。在锚标签我只绑定img。所以基于img src点击我想要一些计算。

 <div class="language">
            <a href="#">
                <img ng-src="images/{{ lang === 'ar-sa' ? 'arabic.png' : 'en-english-language-browser-function-512.png' }}" />
            </a>
        </div>

这是我的控制器代码。

 if ($scope.lang === 'ar-sa')
    {
        $translate.use('de_AR');
    }
    else
    {
        $translate.use('de_EN');
    }

每当我点击img我想在控制器中获取img名称。所以,我可以应用一些计算,如果使用点击arabic.png然后我可以将页面转换为阿拉伯语。任何帮助,将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您需要做的是添加一个更改控制器语言的功能:

$scope.lang = null; // Default language
$scope.changeLanguage = function() {
    $scope.lang = $scope.lang == 'de_AR' ? 'de_EN' : 'de_AR'; // Change the language based on the current selected
    $translate.use($scope.lang);
}
$scope.changeLanguage(); // Set language when the controller loads

接下来,在您的视图中,您只需要调用此函数:

<div class="language">
    <a href="#" ng-click="changeLanguage()">
       <img ng-src="images/{{ lang === 'de_AR' ? 'arabic.png' : 'en-english-language-browser-function-512.png' }}" />
    </a>
</div>

作为替代方案,您还可以传递所选语言:

$scope.changeLanguage = function( lang ) {
    $scope.lang = lang;
    $translate.use($scope.lang);
}
$scope.changeLanguage('de_AR');

在视图中:

<div class="language">
    <a href="#" ng-click="changeLanguage(lang === 'de_AR' ? 'de_EN' : 'de_AR')">
       <img ng-src="images/{{ lang === 'de_AR' ? 'arabic.png' : 'en-english-language-browser-function-512.png' }}" />
    </a>
</div>

修改

由于您的默认语言为based on browser setting,因此您可以执行以下操作:

$scope.changeLanguage = function( lang ) {
    $scope.lang = lang === 'ar-sa' ? 'de_AR' : 'de_EN';
    $translate.use($scope.lang);
}
$scope.changeLanguage($window.navigator.language || $window.navigator.userLanguage);

查看:

<div class="language">
    <a href="#" ng-click="changeLanguage(lang === 'de_AR' ? 'de_EN' : 'ar-sa')">
       <img ng-src="images/{{ lang === 'de_AR' ? 'arabic.png' : 'en-english-language-browser-function-512.png' }}" />
    </a>
</div>

我在上面的示例中所做的是检查语言($window.navigator.language || $window.navigator.userLanguage的返回值)是否等于'ar-sa',如果是,请将语言设置为匹配的i18n代码。