我正在实现一个前端使用AngularJS,后端使用Grails的项目。
这是我设置项目的方式:
web-app
|
|_____ js ( angular controllers, modules, partial templates.)
|
|_____ images
|
|_____ css
grails-app
|
|_____ views ( in here I have my main view, the one I use at the first user request )
与其使用Resources Plugin,我更喜欢使用Grunt构建自己的前端,然后我只链接布局本身内的最终文件。
我在web应用程序中构建了<code>js
这是我用来加载视图的非常标准的角度代码:
angular.module('myapp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/invoices', {
templateUrl: 'partials/invoices-list.html',
controller: InvoiceListCtrl
})
.when('/invoices/:invoiceId', {
templateUrl: 'partials/invoice-details.html',
controller: InvoiceDetailCtrl}
)
.otherwise({redirectTo: '/dashboard'}, {
templateUrl: 'partials/dashboard.html',
controller: DashboardCtrl
});
}]);
发生的情况是Angular无法获取这些部分模板,因为部分文件夹没有复制到tomcat<code>work
我不知道哪种其他方法可以用于圣杯驱动的项目。
默认情况下,web应用程序
文件夹中的所有文件都复制到war
中名为static
的文件夹中。(您可以更改此行为。请参阅Grails文档)。
在您的示例中,您可以检查以下网址中的部分文件。
http://localhost:8080/yourApp/static/js/partials/invoices-list.html
http://localhost:8080/yourApp/static/js/partials/invoices-details.html
http://localhost:8080/yourApp/static/js/partials/dashboard.html
因此,您需要做的是找出这些文件的路径。像这样:
angular.module('myapp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/invoices', {
templateUrl: '../static/js/partials/invoices-list.html',
controller: InvoiceListCtrl
})
.when('/invoices/:invoiceId', {
templateUrl: '../static/js/partials/invoice-details.html',
controller: InvoiceDetailCtrl}
)
.otherwise({redirectTo: '/dashboard'}, {
templateUrl: '../static/js/partials/dashboard.html',
controller: DashboardCtrl
});
}]);
需要注意的是,templateUrl
路径不应该与JS文件相关。
另一个例子:
grails-app
views
mydomain
index.gsp
web-app
js
partials
mydomain-detail.html
mydomain-list.html
controllers
mydomain-controllers.js
资源:
http://localhost:8080/myApp/mydomain/
http://localhost:8080/myApp/static/js/partials/mydomain-detail.html
http://localhost:8080/myApp/static/js/partials/mydomain-list.html
路由配置:
angular.module('myapp', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/list', {
templateUrl: '../static/js/partials/mydomain-detail.html',
controller: MyDomainListCtrl
})
.when('/show/:id', {
templateUrl: '../static/js/partials/mydomain-detail.html',
controller: MyDomainDetailCtrl}
)
.otherwise({
redirectTo: '/list'
});
}]);
我通过标准ajax请求提供我的部分/视图。
class ViewController {
def invoiceList() {
render(template: 'invoiceList')
}
...
}
$routeProvider
.when('/invoices', {
templateUrl: contextPath + '/view/invoiceList',
controller: InvoiceListCtrl
})
上下文路径
派生自 ${request.contextPath}
,我将其存储在主 gsp 中的全局变量中。
我认为问题是静态资源不是从默认grails-app目录派生的,因此您需要包含来自文档根目录的完整路径,例如templateUrl:'/部件/invoices-list.html',
这是我的用户界面-router设置:
App.config([
'$stateProvider'
'$urlRouterProvider'
($stateProvider, $urlRouterProvider) ->
$urlRouterProvider.otherwise("/")
$stateProvider
.state('intro', {
url: "/",
templateUrl: '/templates/intro.html'
})
问题内容: 我在主布局文件中有这个 我的目录结构中有header.html部分模板。 如何在我的应用程序中包含此模板?我认为angular在处理完控制器后会自动包含模板,但是它不起作用。 标头节点应替换为此文件的内容。 问题答案: 包含来自外部文件的模板/ html片段的一种方法是使用指令(doc)。 要么
我试图实施ProLoser在我的Plunk链接中提供的解决方案。我的问题是,每当我按下链接而不是打开链接下方的子视图时,它就会覆盖整个视图。 我需要明白如何解决这个问题。 我的流程是这样的:- 我的布局: 指数html: 所容纳之物html: 我的代码:
问题内容: 我想用一些动态问题来填充表单(在此处提示): 一切正常,除了模型实际上是Answers [“ {{question.Name}}”],而不是评估后的Answers [“ GenderQuestion”]。如何动态设置型号名称? 问题答案: http://jsfiddle.net/DrQ77/ 您只需将javascript表达式放入中。
我正在使用本指南向使用JMeter:https://www.blazemeter.com/blog/testing-advanced-rest-api-file-uploads-jmeter的服务器发送多部分POST请求 在这个请求中有几个部分,如文件、一些字符串和JSON。 问题是,尽管我在“Content type”字段中指定了边界,但JMeter设置了它想要的任何内容,结果是服务器(Wild
问题内容: 例如,我在中有一个局部,我想在几个地方使用不同的汽车集合来渲染它。也许是这样的: 与常规包含项的主要区别在于,部分显示项不需要了解其要显示的汽车列表的任何信息。给了它一系列汽车,并显示它们。可能像: 问题答案: 该指令在父作用域和子作用域中重命名的“本地”变量之间提供了2路数据绑定。它可以与其他指令结合使用,例如实现出色的模板可重用性。需要AngularJS 1.2.x 标记 这是怎么