获取控制器AngularJS中的范围变量值

时间:2013-04-24 10:40:13

标签: angularjs angularjs-directive

我必须获取指令中定义的范围变量的值。我必须使用AngularJS在控制器中获取该范围变量的值。我如何获取范围变量的值?

指令

app.directive('checkToggle', function() {
    return { 
        scope: true,
        link: function ($scope, element, attrs) {
            $(element).on('click', function() {
                $(element).find('i').toggleClass('icon-check icon-check-empty');
                if ($(element).find('i').hasClass('icon-check')) {
                    $scope.isChecked = 'true';
                } else {
                    $scope.isChecked = 'false';
                }
            });
        }
    }
});

我必须在控制器中获取$ scope.isChecked值。

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的用例,您可以在点击时切换图标。如果是这样,您不需要为此编写任何指令。如果你想写一个指令,你就不应该在你开始的时候去做。你的代码是非常必要的,类似jQuery,而AngularJS的功能是根据模型变化推动声明式UI。

无论如何,使用标准的AngularJS指令可以轻松切换图标:

<i ng-class="{'icon-star' : isChecked, 'icon-star-empty': !isChecked}" ng-click="isChecked = !isChecked"></i>

这是一个有效的插件:http://plnkr.co/edit/nXXQA41w00Cpeo6tTibg?p=preview