我是AngularUI路由器的新手,并希望将它用于以下场景:
所有页面共有的布局包括顶部导航栏,其中包含右侧带有按钮的菜单,以及填充下方空间的内容部分.该页面有几个页面,我映射到UI路由器状态(第1页,第2页,...).每个页面都有自己的菜单项和自己的内容.该菜单需要与内容共享范围,因为它们交互(例如保存按钮提交的内容形式,它应该只如果表单有效启用).

HTML大致如下所示:
<body>
<nav class="...">
<h1>my site</h1>
<div>MENU SHOULD GO HERE</div>
</nav>
<div class="row">
<div class="column ...">
CONTENT SHOULD GO HERE
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
现在,我正在为每个州使用两个并行视图和两个控制器.但是这样,两个示波器/控制器无法交互.
那你怎么做到这一点?
使用方法的type参数argparse.add_argument,您可以要求参数为可读文件:
parser.add_argument('--sqlite-file', type=argparse.FileType('r'))
Run Code Online (Sandbox Code Playgroud)
作为指定此类型的好处,argparse会检查是否可以读取文件,如果没有,则会向用户显示错误.
有没有办法获取传递的文件名而不是io.TextIOWrapper或的实例io.BufferedReader?
由于文件名出现在解析器('sqlite_file': <_io.TextIOWrapper name='data/export.sqlite' ...,或'sqlite_file': <_io.BufferedReader name='data/export.sqlite' ...>)的字符串表示中,因此应该是可能的.
怎么做?
我有以下安排的课程:
class A {
static belongsTo = [c: C]
B b
}
class B {
static belongsTo = [c: C]
}
class C {
static hasMany = [bbs: B, aas: A]
}
Run Code Online (Sandbox Code Playgroud)
如果我现在创建这些类的实例...
B b = new B()
A a = new A()
a.b = b
C c = new C()
c.addToBbs(b)
c.addToAas(a)
Run Code Online (Sandbox Code Playgroud)
...并尝试保存c ...
c.save()
Run Code Online (Sandbox Code Playgroud)
......我得到了org.hibernate.TransientObjectException Message object references an unsaved transient instance - save the transient instance before flushing: B.
我认为GORM所做的是首先将保存级联c.aas,然后它会绊倒a.b尚未保存的实例.因此例外.
现在 …
在简化的场景中,我有两个UI-Router状态,并希望它们具有不同的主体背景颜色.
理想情况下,我想做以下事情:
<body ng-class="background" ui-view>
</body>
Run Code Online (Sandbox Code Playgroud)
然后在状态控制器中设置背景类(可能是动态的,意思是:在控制器中计算):
stateHelperProvider
.state({
name: 'a',
url: '/a',
templateUrl: 'views/a.html',
controller: function ($scope) {
$scope.background = 'bg1';
}
})
.state({
name: 'b',
url: '/b',
templateUrl: 'views/b.html',
controller: function ($scope) {
$scope.background = 'bg2';
}
});
Run Code Online (Sandbox Code Playgroud)
但是将ui-view属性放在正文上会删除它.所以我必须把ui-view属性放在体内的div上.
<body>
<div ui-view></div>
</body>
Run Code Online (Sandbox Code Playgroud)
我现在如何控制身体背景?
我知道各种hacks(例如在onEnterUI-Router 的函数中访问body的类DOM属性,...),但有一个很好的方法吗?
或者是关于制作div[ui-view]完整高度(这不是微不足道)并在此元素上设置背景来模仿如何在身体上应用背景占据整个视口?
我的目标是在Grails 3.1控制器方法中呈现HTTP响应
204,但可能其他人,如200)Content-Type,或Content-Encoding标题(因为没有内容,对吧?)render(status: 204)添加一个任意Content-Type: application/json标题.
此外,grails.artefact.controller.support.ResponseRenderer.render()在这种情况下,此方法(请参阅参考资料)调用HttpServletResponse.sendError(),尽管它不是错误.这是为什么?
目前我们通过response直接处理来解决这个问题:
response.status = statusCode.value()
response.flushBuffer()
Run Code Online (Sandbox Code Playgroud)
但这会阻止我们在发送响应之前使用Grails拦截器 after方法执行某些操作.这就是为什么我们正在寻找一种不同的方式,它不会改变HTTP响应(比如添加Content-Type标题).
我使用Grails 2.2.4(Grails 2.3.11中的相同行为)并具有引用域类B的域类A.
class A {
static hasOne = [b: B]
static constraints = { b nullable: true }
}
class B {
static belongsTo = [a: A]
}
Run Code Online (Sandbox Code Playgroud)
我试图找到有B的所有A实例.
A.findAllByBIsNotNull()*.b
Run Code Online (Sandbox Code Playgroud)
返回B和null的列表:
[null, null, b1, b2, null, ...]
Run Code Online (Sandbox Code Playgroud)
怎么会这样?
如果我使用相同的话
A.withCriteria {
isNotNull 'b'
}*.b
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
更新:
我意识到问题是因为hasOne.如果相反的static hasOne = [b: B],还有B b,它的工作原理.前者将外键移动到表B,后者在表A中创建外键关系.那么为什么查询在前一种情况下不起作用,如何查询所有As,而不是B外键何时在内B'
我现在正在编写一个Java库,我将其作为Maven工件发布并在不同的Java/Groovy项目中使用.我想知道一般来说编写一个依赖于某个版本的Groovy的库是个好主意(例如,依赖于它groovy-all-2.x.y).在库中使用Java的不舒服并不会太糟糕.
你怎么看?我应该更好地使用Groovy依赖的宽大版本范围吗?我应该写一个普通的Java库吗?
grails ×3
angularjs ×2
grails-orm ×2
groovy ×2
angular-ui ×1
argparse ×1
cascade ×1
css ×1
gradle ×1
grails-3.1 ×1
hibernate ×1
java ×1
maven ×1
python ×1