我正试图在Angular中测试一个指令,但是我无法使用相应的模板.
该指令列出了templateUrl,如下所示
templateUrl: 'directives/listview/view.html'
Run Code Online (Sandbox Code Playgroud)
现在,当我写任何单元测试时,我得到了
Error: Unexpected request: GET directives/listview/view.html
Run Code Online (Sandbox Code Playgroud)
所以我必须使用$ httpBackend并回复一些明智的事情
httpBackend.whenGET('directives/listview/view.html').respond("<div>som</div>");
Run Code Online (Sandbox Code Playgroud)
但实际上我想简单地返回实际文件,并同步执行,因此等待,延迟对象等没有问题.如何做到这一点?
所以我在Node.js中创建了这个简单的测试服务器.
每当我做直接响应时,我得到2200个请求/秒(快!).当我只包裹一个简单的Q延迟它时,它下降到580个请求/秒(慢4倍!).任何人都能解释这个巨大的差异吗?
// Requires
var server = require('http');
var q = require('q');
// Start server
var http = require('http');
http.createServer(function(request, response) {
// Comment out either of two below sections
// Without deferred
// 2200 reqs/second
response.writeHead(200, {"Content-Type": "text/html"});
response.write("test");
response.end();
// Q deferred
// 580 reqs/second
var deferred = q.defer();
deferred.promise.then(function() {
response.writeHead(200, {"Content-Type": "text/html"});
response.write("test");
response.end();
});
deferred.resolve();
}).listen(1234);
Run Code Online (Sandbox Code Playgroud) [...pageId].tsx我在 /pages 目录中有一个文件。
在 中getServerSideProps,页面将检查 CMS,并找到要呈现的组件列表。我想在服务器端加载这些组件,然后将它们渲染出来,然后返回页面。
如下所示使用 next/dynamic 将加载组件,但不会在服务器端渲染它们。他们只会在客户端上流式传输。换句话说:客户将首先看到“正在加载...”,然后呈现组件。这不是我想要的,也不是 SEO 想要的。
const getDynamicComponent = (c) => dynamic(() => import(`../../components/${c}`), {
loading: () => <section>Loading...</section>,
ssr: true
});
export default function SomePage({page}) {
// Load dynamic component if necessary
let DynamicComponent = getDynamicComponent(page.reactComponent);
}
return (
<DynamicComponent page={page} />
)
}
Run Code Online (Sandbox Code Playgroud)
如何使用动态导入实现服务器端渲染?
javascript dynamic-import reactjs server-side-rendering next.js
所以我使用Sublime Text 2,我已经设置好了
"translate_tabs_to_spaces": false,
Run Code Online (Sandbox Code Playgroud)
这样标签保持标签,不会转换为空格.但是,当我键入一个选项卡时,它仍会插入4个空格,而不是选项卡.有谁知道那是为什么?
我有一个应用程序引擎项目。
我还有一个谷歌云功能。
我想从 App Engine 项目中调用 Google Cloud Function。我似乎无法让它发挥作用。
是的,如果我将函数完全公开(即将云函数设置为“允许所有流量”并为“allUsers”创建规则以允许调用该函数),它就可以工作。但是,如果我限制这两个设置中的任何一个,它就会立即停止工作,并收到 403 错误消息。
应用程序和函数位于同一个项目中,因此我至少假设将函数设置为“仅允许内部流量”应该可以正常工作,前提是我有“allUsers”规则允许调用该函数。
这是如何运作的?通常如何从 Google App Engine 调用(非公开)Google Cloud 函数?
google-app-engine google-authentication google-cloud-functions
我对在Ubuntu中部署Web服务有疑问.它是使用gSOAP实现的,应该进行部署,例如可以从网站(例如ASP .NET开发)访问.
我对整个CGI,Ubuntu,Apache主题感到困惑.到目前为止,我能够在ASP .NET中实现Web服务并将其部署在Microsoft ISS上.除此之外,我还可以使用ASP .NET访问WSDL中描述的gSOAP Web服务
部署我自己的Web服务有哪些步骤?我有一些更具体的问题:
- 我是否必须将WS编译为CGI?
- 我是否必须在Ubuntu中安装Apache或者该服务已经启用?
- 在哪个特定目录中,我必须将生成的代码放在WS编译中(我猜是"CGI")?
关于gSOAP和整个"Web服务世界",我是一个新手,特别是在Ubuntu ......
非常感谢你提前!
我想用类名和可变数量的参数(即具有可变长度的Object [] args)在Java中创建一个类.有没有办法实现这一目标?
基本上,该方法在Javascript中看起来像这样
function createClass(classname, args) {
protoObject = Object.create(window[classname].prototype);
return window[classname].apply(protoObject,args) || protoObject;
}
// I want to be able to do this:
var resultClass = createClass("someClass", someArrayOfArgs);
Run Code Online (Sandbox Code Playgroud)
只调用函数的简单函数看起来像
function callFunction(functionName, args) {
return window[functionName].apply(null,args);
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
为了澄清,这将是Javascript中的一些示例用法:
function multiplyResult(var1,var2) {
return var1*var2;
}
var result = callFunction("multiplyResult", ["5", "2"]); // == 10
function multiplyObject(var1,var2) {
var result = var1 * var2;
this.getResult = function() { return result };
}
var result = createClass("multiplyObject", ["5", "2"]).getResult(); // == …Run Code Online (Sandbox Code Playgroud) 所以我知道的是,ifJavascript 中的语句将其条件的结果转换为布尔值,然后执行它,如下所示
if(true) {
// run this
}
if(false) {
// do not run this
}
Run Code Online (Sandbox Code Playgroud)
这很有效.但如果我这样做:
if('0' == false) {
// We get here, so '0' is a falsy value
}
Run Code Online (Sandbox Code Playgroud)
然后我会期待这个
if('0') {
// We don't get here, because '0' is falsy value
}
Run Code Online (Sandbox Code Playgroud)
但相反,我得到了
if('0') {
// We *DO* get here, even though '0' is falsy value
}
Run Code Online (Sandbox Code Playgroud)
那么发生了什么?显然,if不检查它的条件是否是真实或虚假的价值,而是进行其他转换?
如果我有两个jQuery结果集,比如说
$("#someParent *")
Run Code Online (Sandbox Code Playgroud)
和
$("#someElement").nextAll()
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能最好地获得两个结果集中出现的所有元素?
我有以下 HTML
some text [selected HTML] more text
Run Code Online (Sandbox Code Playgroud)
我想用标记元素包装 [selected HTML] 部分,这样 a) 我可以应用一些标记(浅蓝色)和 b) 这样我可以使用 jQuery 和 C) 找到它,这样我就可以在以下情况下为服务器标记它:我将所有 HTML 发送到服务器。我怎样才能在不改变页面外观的情况下做到这一点?
如果我使用 DIV 元素,则会创建一个块元素,如果任意 HTML 只是文本,我绝对不想要该元素。
some text
<div>[selected HTML which is text]</div>
more text
Run Code Online (Sandbox Code Playgroud)
如果我使用 SPAN 元素(即使使用style='display:inline-block'),那么我会假设任意 HTML 是内联的,但我无法假设。将 a 包裹SPAN在 a 周围DIV是无效的,不是吗?
some text
<span style='inline-block;'>[selected HTML with <div>]</span>
more text
Run Code Online (Sandbox Code Playgroud)
我可以使用什么来简单地“标记” HTML,但不会在其周围创建块或内联元素吗?
在我的Phonegap/Cordova应用程序启动期间,我得到一个黑屏3秒钟,然后webview变为现实.在这3秒黑色期间是否可以设置原生闪屏?
我有这个Javascript变量:
var Item_properties = {
id : null,
keys : [],
hydrate: function() {
//get data
this.id = $('input[id=id]').val();
$("#item_key div input").each(function(index) {
this.keys.push($(this).val());
});
}
Run Code Online (Sandbox Code Playgroud)
我无法在密钥数组中推送任何数据,我收到的消息是:无法调用未定义的方法'push'
任何的想法 ?
javascript ×4
jquery ×2
android ×1
angularjs ×1
apply ×1
block ×1
cgi ×1
cordova ×1
deferred ×1
directive ×1
gsoap ×1
html ×1
if-statement ×1
inline ×1
java ×1
native ×1
next.js ×1
node.js ×1
parameters ×1
promise ×1
q ×1
reactjs ×1
spaces ×1
sublimetext2 ×1
tabs ×1
text ×1
ubuntu ×1
web-services ×1