2つのディレクティブがあります。1つは文字列を変換し、もう1つはタイトル付きのコンテナーを作成します。(および例を短くするために削除されたその他の機能)
グループボックス:
myapp.directive('groupbox', function () {
return {
restrict: 'E',
priority: 200,
template:
'<fieldset>' +
'<legend data-translate>{{title}}</legend>' +
'<div data-ng-transclude></div>' +
'</fieldset>',
transclude: true,
replace: true,
scope: {title: '@'}
};
});
翻訳:(簡略化)
myapp.directive('translate', ['$filter', function ($filter) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var e = $(element);
var data = attrs.translate;
var results = $filter('I')(e.html(), data);
e.html(results.text);
if (results.tooltip) e.attr('data-tooltip', results.tooltip);
}
};
}]);
私はそれを次のように使用します:
<groupbox title='settings'>
content
</groupbox>
「グループボックス」のコンテンツはdivに入れられ、タイトルは「凡例」に入れられるという考え方です。この後、凡例はtranslateディレクティブで翻訳する必要があります。この変換は行われません(設定を出力するだけです)。'{{title}}'を'settings'に置き換えると、翻訳されます。
groupboxディレクティブの結果を操作するようにtranslateディレクティブを取得するにはどうすればよいですか。