0

我必须获取指令中定义的范围变量的值。我必须使用 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 值。

4

1 回答 1

2

如果我正确理解您的用例,您想在点击时切换图标。如果是这样,您不需要为此编写任何指令。并且如果您想编写一个指令,那么您不应该在开始时就这样做。您的代码是非常命令式的,类似于 jQuery,而 AngularJS 的力量在于驱动基于模型更改的声明性 UI。

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

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

这是一个工作 plunk:http ://plnkr.co/edit/nXXQA41w00Cpeo6tTibg?p=preview

于 2013-04-24T11:45:13.663 回答