我有一个 Grails 应用程序,它引入了几个 Grails 插件。这些插件需要被其他几个 Grails 应用程序重用,而不仅仅是我自己的。
在其中一个 Grails 插件的资源包中,我定义了以下内容: 为了完整性而保留它,但我已经切换到 Asset-Pipline
modules = {
directivea {
resource url: 'directives/directivea/directivea.js'
resource url: 'services/restapis.js'
}
}
在其中一个插件的 Javascript 文件中,我定义了以下指令:
ModuleA.directive('directivea',function() {
return {
restrict: 'EA',
scope: {
'objId' : '='
},
replace: true,
link: function(){
$scope.ObjId = attributes[''];
$scope.someFunction($scope.ObjId);
},
controller: function(){
$scope.someFunction = function(objId){
//some stuff happens here
};
},
templateUrl: 'directives/directivea/directivea.html'
}
});
它似乎可以很好地执行控制器,但是当它试图拉入模板时,它会窒息:
获取 /appname/directives/directivea/directivea.html 404(未找到)
这是有道理的,因为那不是部分模板所在的位置。但它会在哪里?如何将这些信息隔离在插件中,但可供所有下游应用程序使用?如果可以的话,我想避免定义内联模板。
**编辑以包含结构**
插件结构:
- grails 应用程序
- 会议
- PluginNameForGrailsResources.groovy
- BuildConfig.groovy
- 控制器
- PluginControllerA.groovy
- PluginControllerB.groovy
- 领域
- PluginDomainA.groovy
- 会议
- 网络应用
- css
- 指令
- 指令a
- 指令a.js
- 指令a.html
- 指令a
- 服务
- restapis.js
- 应用程序属性
- PluginNameForGrailsGrailsPlugin.groovy
引用我的插件的应用程序的结构:
- grails 应用程序
- 会议
- BuildConfig.groovy
- 控制器
- 领域
- 意见
- 布局
- 主文件
- index.gsp(通过资源 r:require 标签引用指令)
- 布局
- 网络应用
- css
- main.css
- js
- index.js
- 应用程序属性
**编辑以包含结构 POST-ASSET-PLUGIN-SWITCHOVER** 不再定义资源,BuildConfig.groovy 现在引用资产管道而不是资源,web-app 中不再有文件
- grails 应用程序
- 会议
- BuildConfig.groovy
- 控制器
- PluginControllerA.groovy
- PluginControllerB.groovy
- 领域
- PluginDomainA.groovy
- 资产
- javascripts
- 指令a
- 指令a.js
- 指令a.html
- 服务
- restapis.js
- 指令a
- 应用程序属性
- PluginNameForGrailsGrailsPlugin.groovy
- javascripts
- 会议