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