我尝试通过bash创建一个新的数据库,名称中有一个破折号.
那是我尝试过的:
echo "CREATE DATABASE IF NOT EXISTS db-name CHARACTER SET utf8 COLLATE utf8_general_ci" | mysql -uuser -ppw
Run Code Online (Sandbox Code Playgroud)
失败并出现以下错误:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the
right syntax to use near
'-name CHARACTER SET utf8 COLLATE utf8_general_ci' at line 1
Run Code Online (Sandbox Code Playgroud)
我添加了反引号:
echo "CREATE DATABASE IF NOT EXISTS `db-name` CHARACTER SET utf8 COLLATE utf8_general_ci" | mysql -uuser -ppw
ERROR 1064 (42000) at …Run Code Online (Sandbox Code Playgroud) 将数组的所有值添加到集合中的传统方法是:
// for the sake of this example imagine this set was created somewhere else
// and I cannot construct a new one out of an array
let mySet = new Set()
for(let item of array) {
mySet.add(item)
}
Run Code Online (Sandbox Code Playgroud)
有没有更优雅的方式做到这一点?也许mySet.add(array)还是mySet.add(...array)?
PS:我知道两者都不起作用
我有以下示例 svg:
<svg>
<text x="0" y="10">
<tspan x="0" dy="10">Foo</tspan>
<tspan x="0" dy="10"></tspan> // this is completely ignored
<tspan x="0" dy="10">Bar</tspan> // this is positioned 10 units below not 20
</text>
</svg>
Run Code Online (Sandbox Code Playgroud)
为什么 empy tspan 被忽略?甚至 dy 属性也无法识别,因此下一行显示在第一行的正下方。
如何实现空行(带有 tspan,因为它全部生成)?我知道一个简单的空格可以解决这个问题,但我需要一个真正的空行。也许我可以使用一些CSS hack?
在 HTML 中,我们有一个<img>有点映射到Image对象的元素。两者都有两个名为naturalWidthand 的属性naturalHeight。当您想在load回调中将图像的尺寸设置为其自然尺寸时,您可以轻松地使用
var img = new Image
img.addEventListener('load' function(e) {
// do whatever with naturalWidt/Height
})
Run Code Online (Sandbox Code Playgroud)
但是,当您想设置 svg<image>元素的尺寸时,您不能依赖于此,因为该元素没有natural属性:
var img = document.createElementNS(namespace, 'image')
img.addEventListener('load' function(e) {
img.setAttributeNS(namespace, 'width', img.naturalWidth) // dont work
})
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如何在<image>不加载图像的情况下设置 svg elemet的尺寸new Image?规范中是否有计划支持此类natural属性?
我想确保遵循标准.
是否允许在一个SVG文档中有多个defs?
嵌套的svgs是否允许有defs?
<svg>
<defs></defs>
<svg>
<defs></defs>
</svg>
</svg>
Run Code Online (Sandbox Code Playgroud)
我找不到与此相关的规格中的任何内容
我编写了一个薄包装器,它传递了创建的节点document.createElement并添加了一些方法。这个包装器是用代理实现的。我所做的就是抓住一些吸气剂。
return new Proxy(node, {
get (target, prop) {
if (prop === 'node') return target
if (wFuncs[prop]) {
return Reflect.get(target, wFuncs[prop]).bind(target)
}
return Reflect.get(target, prop)
}
})
Run Code Online (Sandbox Code Playgroud)
我本来希望能够传递这样的代理,appendChild因为它仍然是 html 元素的实例Node,并且具有 html 元素的所有属性和方法。然而,appendChild 抱怨传递的元素不是 Node:
TypeError:无法在“Node”上执行“appendChild”:参数 1 不是“Node”类型
关于如何解决这个问题有什么想法吗?
Vue 3 有一个新的 Teleport 功能,它取代了 vue 2 中的 portal-vue 插件。但是,我发现不可能将组件移植到 vue 控制的地方(=在 vue 应用程序中)。它仅在移植到外部(主体、其他元素......)时有效。
const app = {
template: `
<div>
<h1>App</h1>
<div id="dest"></div>
<comp />
</div>`
}
Vue.createApp(app).component('comp', {
template: `
<div>
A component
<Teleport to="#dest">
Hello From Portal
</Teleport>
</div>`
}).mount('#app')Run Code Online (Sandbox Code Playgroud)
<script src="https://unpkg.com/vue@3.0.0-rc.9/dist/vue.global.js"></script>
<div id="app"></div>Run Code Online (Sandbox Code Playgroud)
如您所见,控制台甚至报告说需要已经渲染传送目标。但是我怎么能告诉 vue 先渲染哪个组件呢?在我的例子中,目标在传送前的 dom 中。
这在 portal-vue 中不是问题,而且非常令人失望,因为它使整个概念变得不那么可用。
我一直认为,点击一个label或多或少会"触发"相应表单元素上的点击.然而,这似乎并不适用select."mousedown-on-selectfield" - 动画有效,但选择没有打开.
我试过这个:
<label for="my_id">Click me</label>
<select id="my_id">
<option>1</option>
<option>2</option>
</select>
Run Code Online (Sandbox Code Playgroud)
然后:
<label for="my_id">Click me
<select id="my_id">
<option>1</option>
<option>2</option>
</select>
</label>
Run Code Online (Sandbox Code Playgroud)
任何想法我做错了什么?
PS:Imo应该不需要任何Javascript,因为这是一个HTML功能
这听起来像是一个奇怪的问题:如何从 ES6 模块中离开执行上下文?
请参阅以下示例:Module1 要求浏览器中存在某些功能(例如并非每个浏览器当前都实现的一些新功能)。
您想要在模块中进行检查,确定所需的功能是否可用,如果不可用,则想要停止执行。
当使用立即函数调用编写该代码时,您只需调用即可return,并且以下代码永远不会执行。
如何在 ES6 模块中做到这一点?我必须将整个代码包装到一个if块中吗?
我通过简单地观察一个节点
new MutationObserver(callback)
.observe(shape.node, {attributes: true})
Run Code Online (Sandbox Code Playgroud)
如您所见,我没有对观察者的任何引用。观察到的节点将在某个时候被破坏。
节点和观察者的内存是否已清理?还是他们保持生命?如果是这样:我如何防止这种情况发生?我不知道何时删除该节点。
Ofc我还可以观察父级,并在父级观察到“子列表已更改”时断开第一个观察者的连接,但我想避免这种情况
javascript ×5
svg ×3
bash ×1
dom ×1
ecmascript-6 ×1
forms ×1
html ×1
image ×1
label ×1
mysql ×1
select ×1
set ×1
vue-teleport ×1
vue.js ×1
vuejs3 ×1