angular-annotate-asset-pipeline在Grails 2项目中根本不起作用

时间:2017-05-23 21:08:22

标签: javascript angularjs grails asset-pipeline annotate-asset-pipeline

我在Grails 2.4.4中有一个项目,我也使用AngularJS。

我决定使用Asset Pipeline PluginAngularJs Annotate Asset-Pipeline。第一个用于处理,缩小等静态资产(js,css等),第二个用于在需要它的每个函数中获取myFunc.$inject = [...]“注入”,这是由于AngularJS依赖的注入依赖性

根据AngularJs Annotate Asset-Pipeline的文档,它应该在需要时在我的js文件上生成战争时放置myFunc.$inject=[],但真实是不同的:它根本不起作用(我没有在缩小的文件中看到任何$inject,并且由于在{SO dependency injectionAngularjs error Unknown provider上广泛讨论了AngularJS Error: $injector:unpr Unknown Provider,应用程序中断了

以下是相关代码(如果需要,请告诉我们)

BuildConfig.groovy

compile "org.grails.plugins:asset-pipeline:1.9.9"
compile "org.grails.plugins:angular-annotate-asset-pipeline:2.4.1"

AngularJS控制器(这只是一个例子)

angular
    .module('app', [])
    .controller('myCtrl', myCtrl);

/*@ngInject*/          // << --- did not work!
function myCtrl ($scope){

//I also used the "ngIngect"; alternative here and it did not work either!

    $scope.myVar = "sample text";
}

1 个答案:

答案 0 :(得分:1)

简答:

更改依赖项的版本

来自

compile "org.grails.plugins:angular-annotate-asset-pipeline:2.4.1"

到此

compile "org.grails.plugins:angular-annotate-asset-pipeline:1.1.3"

长篇故事

在深入了解AngularJs Annotate Asset-Pipeline之后,在朋友提供的帮助下,我得出结论,这个插件的作者只是删除了其中的逻辑。

这意味着现在(20017年5月25日)使用此插件的当前版本(2.4.1),没有人能够使用它,因为它打算使用它。

所以,如果有人遇到同样的问题,应该使用版本1.1.3,这是我能够成功使用的最新版本。