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>

ここに作業プランクがあります: http://plnkr.co/edit/nXXQA41w00Cpeo6tTibg?p=preview

于 2013-04-24T11:45:13.663 に答える