9

AngularJS ディレクティブで関数式の値が変化するのを監視する方法はありますか? 私は次の HTML と JavaScript を持っています{{editable()}}。テンプレートでの補間は、値が true に評価されることを示していますが、Chrome で HTML 要素を調べると、それcontenteditableが false であることを示しています。

この関数の値が変化するのを監視し、それに応じて要素の属性を更新する方法について何か提案はありますか? または、これを達成するためのより良い方法はありますか? (私はまだ関数を評価したいと思います。)

HTML:

<h4 editable="account.hasRole('ROLE_ADMIN')" content="doc.heading"></h4>

Javascript:

mod
    .directive(
            'editable',
            function() {
                return {
                    restrict : 'A',
                    template : '<button class="btn pull-right"><i class="icon-pencil"></i></button>{{content}} ({{editable()}})',
                    scope : {
                        'content' : '=',
                        'editable' : '&'
                    },
                    link : function(scope, element, attrs) {
                        scope.$watch('editable', function(newValue) {
                            element.attr('contenteditable', newValue());
                        });
                    }
                };
            });
4

2 に答える 2

10

'editable()'代わりに時計を置いてみてください'editable'

説明:これが必要な理由は'&'、式自体ではなく、属性式に対して動的に生成された関数ラッパーを指しているためです。この特別なラッパー関数は、 の値を返しますaccount.hasRole('ROLE_ADMIN')

于 2013-05-23T03:13:49.740 に答える