javascript - 使用 grunt 在 Angular 指令中调用 js 文件

标签 javascript angularjs angularjs-directive gruntjs

在使用grunt build命令之前,我编写了一个非常有效的指令。事实上,我下面的初始化不再起作用,因为构建后库的路径不正确:

element.intlTelInput({
            validationScript: "bower_components/intl-tel-input/lib/libphonenumber/build/isValidNumber.js",
            preferredCountries: ['ch', 'fr']
        });

是否有可能有一个在应用程序和dist(在grunt构建之后)上下文或其他类似的上下文中都有效的相对路径?

感谢您的帮助

最佳答案

您可以尝试 grunt-ng-constant,有两种配置,一种用于本地环境,另一种用于生产环境,并在构建任务中在所有进程之前添加生产 ngconstant,例如:

ngconstant: {
            options: {
                dest: 'app/scripts/configuration.js',
                name: 'configuration'
            },
            local: {
                constants: {
                    'validationScript': 'bower_components/intl-tel-input/lib/libphonenumber/build/isValidNumber.js',
                }
            },
            dist:{
                constants: {
                   'validationScript': 'prodPathFile',
                }
            }
        },


grunt.registerTask('build', [
        'ngconstant:dist',
        'other_tasks'
    ]);

只需要为您的 Angular 应用程序配置模块,并在指令中使用常量validationScript,例如:

app.directive('yourdirective', ['validationScript', function(validationScript) {
  return {
   link: function(scope, element) {
element.intlTelInput({
            validationScript: validationScript,
            preferredCountries: ['ch', 'fr']
        });   
       }
   }
}]);

关于javascript - 使用 grunt 在 Angular 指令中调用 js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28625740/

相关文章:

javascript - Node Js根据unix时间戳排序Json对象

javascript - 在 ngResource AngularJS 中将 null 作为值发送

javascript - 在 Angular 中使用没有路由的 Controller

javascript - 从子指令调用指令函数不起作用

javascript - Backbonejs模型.save()的PUT和POST请求

javascript - 如何获得上午或下午?

javascript - 使用 jest 监视未导出的 node.js 函数未按预期工作

AngularJS:货币格式。更改分数大小、千位分隔符和分数分隔符

javascript - $scope.$watch 未捕获指令修改的值

angularjs - ionic 列表 : swipe to remove?