我想显示一个单选按钮,提交其值,但根据具体情况,让它不可编辑.禁用不起作用,因为它没有提交值(或者是吗?),它会使单选按钮变灰.只读是我正在寻找的,但由于一些神秘的原因,它不起作用.
是否有一些奇怪的技巧我需要拉动以使只读按预期工作?我应该用JavaScript代替吗?
顺便说一下,有没有人知道为什么只读在单选按钮中不起作用,而它在其他输入标签中有效?这是HTML规范中难以理解的遗漏之一吗?
Web组件是热门的新事物,也是一个真正的Web标准,每个人都在谈论它们并且可能使用它们,它们似乎是我们遇到的问题的完美解决方案(在不同的站点之间共享组件).
所以我们构建了几个Web组件.Chrome中的工作正常,但IE11中没有.使用polyfill可能吗?https://www.webcomponents.org/polyfills有大量的polyfills,但IE11一直在抱怨class.
也许编译成ES5?各种来源声称Web组件需要ES6,因为您在IE11中没有从HTMLElement获得相同类型的继承.有自定义元素-es5-adapter.js,但不知何故它不起作用.如果我编译下来,webcomponents不起作用.如果我不这样做,IE11就会失败class.
但是每个人都在使用网络组件.你怎么做呢?你根本不支持IE11/Edge吗?难道我做错了什么?
我正在尝试访问我无法控制的REST服务.第一个问题是该服务不包含Access-Control-Allow-Origin标头,这是一个问题,如果我理解正确,立即限制我使用JSONP.
此外,默认情况下,此服务发送XML而不是JSON,但它能够发送JSON.我认为它应该响应我的Accept标头,负责服务的人说它看着我的Content-Type.这意味着我需要做一个POST而不是一个GET(虽然当我只是获取一些静态数据时更有意义,对吗?).
像我一样顽固,我正在尝试我的Accept标头.由于Angular只接受JSON,我希望它Accept: application/json默认使用标头,但它没有,它忽略了我手动设置它的尝试:
app.config(['$httpProvider', function($httpProvider){
console.log($httpProvider.defaults.headers.common);
delete $httpProvider.defaults.headers.common['X-Requested-With'];
$httpProvider.defaults.headers.post['Accept'] = 'application/json, text/javascript';
$httpProvider.defaults.headers.post['Content-Type'] = 'application/json; charset=utf-8';
$httpProvider.defaults.headers.post['Access-Control-Max-Age'] = '1728000';
$httpProvider.defaults.headers.common['Access-Control-Max-Age'] = '1728000';
$httpProvider.defaults.headers.common['Accept'] = 'application/json, text/javascript';
$httpProvider.defaults.headers.common['Content-Type'] = 'application/json; charset=utf-8';
$httpProvider.defaults.useXDomain = true;
}]);
Run Code Online (Sandbox Code Playgroud)
我在实际资源中再次这样做:
return $resource('http://foo.com/getStuff', {}, {
fetch: {
method:'JSONP',
params: params,
headers: {
'Accept':'application/json, text/javascript',
'Content-Type':'application/json; charset=utf-8'
},
isArray:false,
callback: 'JSON_CALLBACK'
}
});
Run Code Online (Sandbox Code Playgroud)
但是,请求标头仍然包含Accept: */*.
我的问题是:为什么?为什么Angular会忽略我的标题?我怎么能让它使用正确的标题呢?
而且:有没有办法在POST中使用JSONP?
编辑:最初我使用的是Angular 1.0.7,但我只是尝试了1.2.3并得到了相同的结果.标题被忽略,但每个人都声称这是实现目标的方法.
我也尝试直接使用$ http,而不是$ resource,使用相同的结果.
编辑2:这是一个JSFiddle.它是匿名的,并不使用我的真实服务器,但使用Firebug /开发人员工具,您可以验证它是否Accept: */*在两个调用上发送,尽管我尝试设置application/json …
我正在测试一个 Vue 组件,当路由中存在某个参数时,该组件会在我的 Vuex 存储中调用某个操作。我在嘲笑这个动作jest.fn()。
这是组件中的相关代码:
await this.$store.dispatch('someOtherAction');
if (this.$route.params && this.$route.params.id) {
this.$store.dispatch('selection/selectElement', parseInt(this.$route.params.id, 10));
}
Run Code Online (Sandbox Code Playgroud)
这是模拟函数:
someOtherAction = jest.fn();
selectElement = jest.fn(() => console.log("selectElement has been called"));
Run Code Online (Sandbox Code Playgroud)
我的测试:
it('selects element if passed in route', async () => {
const $route = {params: {id: '256'}};
const wrapper = shallowMount(AbcModel, {
mocks: {$route},
store, localVue
});
expect(someOtherAction).toHaveBeenCalled();
expect(selectElement).toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)
在输出中,我可以看到“selectElement 已被调用”。显然它已经被调用了。然而,expect(selectElement).toHaveBeenCalled()失败了。
这怎么可能?它适用于我嘲笑的另一个函数。替换我模拟函数的顺序并不重要。消除调用另一个函数的期望也无关紧要,因此它看起来不像冲突。
通常,当按字段升序排序时,首先获得NULL值,然后获得更有趣的值.通常,您最后需要NULL值.在MySQL中,你可以这样做:
SELECT * FROM people ORDER BY ISNULL(name), name;
但是,我正在使用带有Hibernate标准的Grails,我完全不知道如何在那里做到这一点.这甚至是以任何方式支持的吗?是否有某种方法可以通过自定义SQL表达式进行排序?我讨厌将所有标准重写为纯SQL,只是为了让它正确排序.
我assume-unchanged在一些文件上设置了一下,现在我想取消它们,但这不起作用.
> git update-index --no-assume-unchanged Gemfile
> git ls-files -v | grep Gemfile
S Gemfile
S Gemfile.lock
> git status
# On branch foo
nothing to commit (working directory clean)
>
Run Code Online (Sandbox Code Playgroud)
我的Gemfile当然有变化.其中一些我不想承诺,其他我也承诺.如果其他人改变了Gemfile,我就无法合并因为那个位.它似乎真的搞得太多了.
所以我有两个问题:
1:我如何取消位置?2:是否有更好的方法可以忽略一个特定的本地更改,同时允许对该文件的其他更改正常工作?
我正在尝试使用纯 javascript Web 组件进行无框架工作。我希望我的 Web 组件能够独立工作并在不同的站点上使用,但我也希望两个组件能够进行通信。因此它们应该能够在不紧密耦合的情况下进行通信。
当我使用 Angular 时,这很容易。我可以通过 HTML 属性将对象传递给组件,并且组件将其作为对象而不是字符串接收。但在纯 JavaScript 中,属性始终是字符串。传递对象或以其他方式使 Web 组件相互了解并能够进行通信的正确方法是什么?
我已经向已经使用了大量SOAP请求的现有项目添加了一个新的SOAP请求.他们都很好.我以完全相同的方式添加我的新代码(通过Apache CXF从WSDL生成的代码),但不知何故它失败了.
我收到此错误:
javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info for web method foo.
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:113)
at $Proxy51.foo(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
这是一个Grails项目,代码调用如下:
FooRequest request = new FooRequest()
processResponse(order) { getPort().foo(request) }
Run Code Online (Sandbox Code Playgroud)
它是底部的getPort().foo(),显然是失败的.事实上,我认为不是调用失败,而是闭包的创建,因为processResponse()似乎没有被执行(我在该方法的第一行放了一个println). 编辑:这是关闭的执行失败,而不是创建.所以它真的找不到getPort().foo(),尽管我生成的接口确实有这个方法:
public nl.wecompany.portal.webserviceQopi.QOPIResponse foo(
@WebParam(name = "in", targetNamespace = "")
com.myproject.FooRequest in
);
Run Code Online (Sandbox Code Playgroud)
getPort()返回一个org.apache.cxf.jaxws.JaxWsClientProxy@41079622,它也可以用于其他SOAP请求(有效的请求).
我在新代码和现有代码之间找不到任何有意义的区别.什么想法可能是错的?关于在哪里看的任何建议?
编辑:port.metaClass.methods*.name.sort().unique()包含我的新foo()方法.然而,当我调用它时,我得到了这个奇怪的wsdl:binding错误,并且该方法没有被执行(它没有到达第一行的println).
编辑:匿名化我打算匿名的一些东西.
当我查看XML文件时,它看起来很好,并开始 <?xml version="1.0" encoding="utf-16le" standalone="yes"?>
但是当我在Ruby中读取它并将其打印到粗壮时,前面有两个: ??<?xml version="1.0" encoding="utf-16le" standalone="yes"?>
这些来自哪里,如何删除它们?使用REXML解析它会立即失败.删除第一个字符,然后解析它,给我这个错误:
REXML::ParseException: #<REXML::ParseException: malformed XML: missing tag start
Line:
Position:
Last 80 unconsumed characters:
<?xml version="1.0" encoding="utf-16le" s>
处理这个问题的正确方法是什么?
编辑:下面是我的代码.该ftp.get下载从FTP服务器的XML.(我想知道这可能是相关的.)
xml = ftp.get
puts xml
until xml[0,1] == "<" # to remove the 2 invalid characters
puts xml[0,2]
xml.slice! 0
end
puts xml
document = REXML::Document.new(xml)
Run Code Online (Sandbox Code Playgroud)
最后一个put打印出正确的xml.但由于这两个无效的角色,我感觉还有其他问题.没有必要删除任何东西.不过,我不知道问题可能是什么.
编辑2:我正在使用Net :: FTP下载XML,但是这个新方法让我可以将内容读入字符串而不是文件:
class Net::FTP
def gettextcontent(remotefile, &block) # :yield: line
f = StringIO.new()
begin
retrlines("RETR " + remotefile) …Run Code Online (Sandbox Code Playgroud) 我在 AngularJS 中遇到了一个问题,$scope.$watchCollection()会引发错误。我已经将我的代码减少到与文档中的示例代码完全相同的程度(http://docs.angularjs.org/api/ng .$rootScope.Scope#$watchCollection),并且仍然抛出错误:
function OverviewCtrl($scope) {
$scope.names = ['igor', 'matias', 'misko', 'james'];
$scope.dataCount = 4;
$scope.$watchCollection('names', function(newNames, oldNames) {
$scope.dataCount = newNames.length;
});
}
Run Code Online (Sandbox Code Playgroud)
我收到错误
'undefined' is not a function (evaluating '$scope.$watchCollection('names', function(newNames, oldNames) {
$scope.dataCount = newNames.length;
})')
Run Code Online (Sandbox Code Playgroud)
我不知道可能是什么问题。我正在按照文档说的做,除了我将它放在控制器中,但似乎这段代码是用于控制器的。那么这里有什么问题呢?