Angular 1.2 - 用全局设置替换指令

时间:2017-08-07 15:14:06

标签: angularjs

我有一个指令,用一个字符串替换一个特定的日期(是一个标志)。

app.directive('dateToText', ['$timeout', function($timeout) {
    return {
        restrict: 'A',
        link: function(scope, el, attrs) {
            if(scope.currentUserData.selectedLanguage == 'FR') {
                scope.unKnownDate  = 'Date inconnue'
            }
            else {
                scope.unKnownDate = 'Date unknown';
            }
            $timeout(function(){
                if(attrs.value == "01/01/2050" && $(el).prop('disabled')) {
                    console.log("attrs.value: ", attrs.value );
                    $(el).val(scope.unKnownDate);
                }
            });

        }
    }
}]);

这个指令用于某些输入,但是我想全局使用这个逻辑,而不是为每个输入提供这个指令。

所有已禁用且值为“01/01/2050”的输入必须为value =“My text”。

感谢您的任何想法!

1 个答案:

答案 0 :(得分:0)

我创建了这个指令,问题解决了:

.directive('dateToText', ['$timeout', '$interpolate', function($timeout, $interpolate) {
    return {
        restrict: 'A',
        link: function(scope, el, attrs) {

            if(scope.currentUserData.selectedLanguage == 'FR') {
                scope.unKnownDate  = 'Inconnue'
            }
            else {
                scope.unKnownDate = 'Unknown';
            }
            $timeout(function(){
                if(attrs.value == "01/01/2050") {
                    console.log("attrs.value: ", attrs.value );
                    $(el).val(scope.unKnownDate);
                }
                if( el[0].textContent.trim() == "01/01/2050" ) {
                    $(el).text(scope.unKnownDate);
                    scope.$apply();
                }
            });

        }
    }
}])