0

私は指令を持っています:

app.directive('testDir', [function () {
    return {
        require: '?ngModel',
        link: function ($scope, elm, attr, ngModel) {
            var abc=<some string passed from the html>;
        }
    };
}])

ディレクティブを次のようにしたい:

<div testDir='abcd'>xx</div>

ディレクティブ内で値「abcd」を読み取るにはどうすればよいですか?

4

2 に答える 2

0

attrs変数を介して(リンク プロセスの 3 番目の引数)。

var abc =  attr.testDir

AngularJS コンテキスト変数を渡す必要がある場合は、$parse を使用する必要があります。

var abc= $parse(attr.testDir)(scope)
于 2013-09-12T16:51:20.830 に答える
0

からアクセスできますattr

app.directive('testDir', [function () {
    return {
        require: '?ngModel',
        link: function (scope, elm, attr, ngModel) {
            var abc=attr.testDir;
        }
    };
}]);

または、分離スコープを作成する (`test-dir="'test'" を使用)

app.directive('testDir', [function () {
    return {
        require: '?ngModel',
        scope: {
           testDir : "="
        },
        link: function (scope, elm, attr, ngModel) {
            var abc=scope.testDir;
        }
    };
}]);

注:あなた<html/>は間違っています、あなたはする必要はありtest-dirませんtestDir

<div test-dir='abcd'>xx</div>
于 2013-09-12T16:50:20.057 に答える