Skip to content

Commit d83c44d

Browse files
committed
add translate-child-key-into option to translate-child directive
1 parent 7eaf6e3 commit d83c44d

6 files changed

Lines changed: 36 additions & 38 deletions

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"main": [
44
"dist/angular-devtrw-translate.js"
55
],
6-
"version": "0.1.1",
6+
"version": "0.1.2",
77
"description": "Provides translate-base and translate-child directives for angular-translate",
88
"authors": [
99
"Steven Nance <steven@devtrw.com>"

dist/angular-devtrw-translate.js

Lines changed: 18 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/angular-devtrw-translate.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/angular-devtrw-translate.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "angular-devtrw-translate",
3-
"version": "0.1.1",
3+
"version": "0.1.2",
44
"author": "Steven Nance <steven@devtrw.com>",
55
"homepage": "https://github.com/devtrw/angular-devtrw-translate",
66
"repository": {

src/translate-child-directive.js

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,6 @@
11
/*@ngInject*/
22
function dtrwTranslateChildDirective($compile, $translate) {
33

4-
function rebuildElement(element, translateKey, translateInto, translateValues) {
5-
if (translateInto) {
6-
element.attr(translateInto, $translate.instant(translateKey, translateValues));
7-
element.removeAttr('translate-child-into'); //remove the attribute to avoid indefinite loop
8-
} else {
9-
element.attr('translate', translateKey);
10-
}
11-
12-
element.removeAttr('translate-child'); //remove the attribute to avoid indefinite loop
13-
}
14-
154
return {
165
restrict: 'A',
176
replace: false,
@@ -20,16 +9,24 @@ function dtrwTranslateChildDirective($compile, $translate) {
209
require: '^translateBase',
2110
// Make sure this directive is run first
2211
priority: 1000,
23-
link: function link(scope, element, attrs, translateBaseCtrl) {
12+
link: function link(scope, element, attrs, translateBaseCtrl) { // jshint ignore:line
13+
let {translateChildInto, translateChildKeyInto, translateValues} = attrs;
2414
let translateKey = translateBaseCtrl.getTranslationKey(attrs.translateChild);
25-
let translateInto = attrs.translateChildInto;
26-
let translateValues;
2715

28-
if (translateInto && attrs.translateValues) {
29-
translateValues = scope.$eval(attrs.translateValues);
16+
if (translateChildInto && translateChildKeyInto) {
17+
throw new Error('translate-child-into and translate-child-key-into are mutually exclusive');
18+
}
19+
20+
if (translateChildInto) {
21+
translateValues = (translateValues) ? scope.$eval(translateValues) : {};
22+
element.attr(translateChildInto, $translate.instant(translateKey, translateValues));
23+
} else if (translateChildKeyInto) {
24+
element.attr(translateChildKeyInto, translateKey);
25+
} else {
26+
element.attr('translate', translateKey);
3027
}
3128

32-
rebuildElement(element, translateKey, translateInto, translateValues);
29+
element.removeAttr('translate-child'); //remove the attribute to avoid indefinite loop
3330

3431
$compile(element)(scope);
3532
}

0 commit comments

Comments
 (0)