我面临的问题是在两个状态之间传递数据而不暴露网址中的数据,就像用户不能真正直接落在这种状态上一样.
例如.我有两个状态"A"和"B".我正在状态"A"中进行一些服务器调用,并将调用的响应传递给状态"B".服务器调用的响应是一个字符串消息,这很长,所以我不能在url中公开它.
那么在角度ui路由器中有没有办法在状态之间传递数据,而不使用url params?
我写过这样的CSS媒体查询 -
@media screen and (max-width: 59.9375em) {
.left {
display: none;
}
}Run Code Online (Sandbox Code Playgroud)
这适用于除Safari 10.0.4及更低版本之外的所有浏览器.Safari似乎以不同方式处理媒体查询.
其他浏览器似乎将window.innerWidth作为用于触发媒体查询的视口宽度,但safari似乎将document.documentElement.clientWidth作为视口宽度并相应地触发媒体查询.
我可以看到实际断点和预期断点之间的差异为15px.我正在寻找一种跨浏览器的方式来处理这个问题.欢迎提出意见,提前谢谢.
我正在尝试注册这样的自定义json marshaller
JSON.createNamedConfig("dynamic",{
def m = new CustomJSONSerializer()
JSON.registerObjectMarshaller(Idf, 1, { instance, converter -> m.marshalObject(instance, converter) })
})
and then using it like this
JSON.use("dynamic"){
render inventionList as JSON
}
Run Code Online (Sandbox Code Playgroud)
但我不确定我的自定义序列化程序是否正在使用,因为当我调试控件时,永远不会marshalObject使用我的自定义序列化程序
我的自定义序列化程序如下
import grails.converters.deep.JSON
import java.beans.PropertyDescriptor
import java.lang.reflect.Field
import java.lang.reflect.Method
import org.codehaus.groovy.grails.web.converters.exceptions.ConverterException
import org.codehaus.groovy.grails.web.converters.marshaller.json.GroovyBeanMarshaller
import org.codehaus.groovy.grails.web.json.JSONWriter
class CustomJSONSerializer extends GroovyBeanMarshaller{
public boolean supports(Object object) {
return object instanceof GroovyObject;
}
public void marshalObject(Object o, JSON json) throws ConverterException {
JSONWriter writer = json.getWriter();
println 'properties '+BeanUtils.getPropertyDescriptors(o.getClass())
for(PropertyDescriptor property:BeanUtils.getProperyDescriptors(o.getClass())){ …Run Code Online (Sandbox Code Playgroud) 我试图在一个标准中使用别名和正常关联名称,这给我“重复关联路径错误”我的类如下
class FlightReservation{
Flight flight
User usr
String title
}
class Flight {
String flightNumber
Category category
}
class Category {
String name
}
Run Code Online (Sandbox Code Playgroud)
条件查询
FlightReservation.createCriteria().list(){
createAlias("flight", "flt", CriteriaSpecification.LEFT_JOIN)
flight{
location{
eq("name", "abc")
}
}
order("flt.flightNumber", "asc")
}
Run Code Online (Sandbox Code Playgroud)
现在,当我想到它时,这似乎很明显,也许是 Hibernate 的限制,所以我想知道是否有替代方法来实现这一目标
我知道我可以使用 fetchMode 加载航班关联,但从查询中删除别名会使 order 子句变得困难(这将是动态的,嵌套闭包会使事情变得丑陋)
有人可能会说为什么我不能在这两个地方都使用“flt”(别名)?实际上,使用嵌套闭包而不是别名的其他标准来自代码的其他部分,我应该重用该代码。
让我知道,如果问题不够清楚,任何有关此错误的见解都会非常有帮助。
我想以编程方式为datebox控件的输入设置日期,为此我知道我可以使用这样的东西
$(element).trigger('datebox', {'method':'set', 'value':'dateString'});
Run Code Online (Sandbox Code Playgroud)
但这似乎没有更新控件(即当我打开日历时,它被设置为当前日期并且不等于输入字段中的值)
编辑:基于JTsage的指针,我将默认的日期格式覆盖为mm/dd/yyyy,使用这样的方式.
jQuery.extend(jQuery.mobile.datebox.prototype.options.lang, {
'en': {
dateFormat: '%m/%d/%Y'
}
});
jQuery.extend(jQuery.mobile.datebox.prototype.options, {
useLang: 'en'
});
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用这样设置日期
$(element).trigger('datebox', {'method':'set', value:'07/02/2012'});
Run Code Online (Sandbox Code Playgroud)
但是当我导航到页面时,这个日期没有出现.有趣的是,当我尝试从firebug控制台更新日期(在该页面上)时,它更新了字段以及日期框控件.
我不知道为什么会这样.需要帮助,请回复JT
我正在尝试为属性编写一个通用的自定义验证器,使其通用我需要在闭包内对字段名称的引用,代码如下在config.groovy
grails.gorm.default.constraints = {
nameShared(validator: {val, obj, errors->
Pattern p = Pattern.compile("[a-zA-Z0-9-]{1,15}")
Matcher m = p.matcher(val)
boolean b = m.matches()
if(!b)
errors.rejectValue('name', "${obj.class}.name.invalid", "Name is invalid")
})
Run Code Online (Sandbox Code Playgroud)
在我的域类中
class Student{
String name
static constraints = {
name(shared:'nameShared')
}
}
class Teacher{
String firstName
String lastName
static constraints = {
firstName(shared:'nameShared')
}
}
Run Code Online (Sandbox Code Playgroud)
我想对name和firstName使用相同的验证器,但由于我在验证器中对fieldName进行硬编码,它将始终用于name而不是firstName,所以我想知道是否有任何方式我可以获得对fieldname并使验证器通用,请帮助
grails ×3
angularjs ×1
associations ×1
breakpoints ×1
criteria ×1
css ×1
datebox ×1
duplicates ×1
global ×1
groovy ×1
json ×1
parameters ×1
safari ×1
shared ×1
state ×1