我有这个问题,因为我将代码从 React Javascript 移动到 React Typescript
我有一个简单的钩子,可以从开/关(或真假)切换状态(下面的代码)我正在努力解决这个问题,因为这段代码正在处理 Javascript
所以切换功能有一些错误,但无法弄清楚。一些帮助将不胜感激
// useToggle.tsx
import { useState } from "react";
export const useToggle = (initialMode = false) => {
const [open, setOpen] = useState(initialMode);
const toggle = () => setOpen(!open);
return [open, setOpen, toggle];
};
Run Code Online (Sandbox Code Playgroud)
我的开关组件
// Switch.tsx
import { useToggle } from "./useToggle";
import React from "react";
export const Switch = () => {
const [open, toggle] = useToggle();
const [open2, toggle2] = useToggle();
return (
<>
<p>Testing toggle 1: {`${open}`}</p> …Run Code Online (Sandbox Code Playgroud) 我想在AngularJS 1.5x中使用D3.js v4
在过去,我使用.directives作为图表,但现在我想知道是否可以使用.components而不是指令,如果这是一个很好的做法.
问题出现在d3.select(element[0]).append('svg')内部组件中.控制台抛出错误:未定义元素.
所以我试着用类似的东西d3.select('chart-container').append('svg')
然后d3在第一个拥有该类的元素中注入所有图表(在所有文档中查找类,而不仅仅是组件).
没有为每个添加不同的ID(工作量太大,维护太难)
当您在带有 iOS 的 Chrome / Safari 中按住某个链接时,它会显示一个烦人的链接预览,当我有一个可排序的列表项(其中包含完整链接)时,就会出现问题,所以如果您按住拖动(我的if<ul>上存在拖动事件)<li>单击/点按即可转到链接<a>。
iOS 问题: 当我按住应该启动拖动事件时,会出现这个恼人的系统模式,阻止所有拖动过程并破坏用户体验。
我尝试过阻止默认操作,拖动开始时元素内的链接没有指针事件,但没有任何内容继续出现
element.sortable.on('drag:start', (e) => {
e.stopPropagation();
e.preventDefault();
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题(js,css或一些html attr?)提前致谢
我有一个组件,如:
检查Plunkr示例 (更新并使用解决方案:)谢谢)
my-component.js声明
(function() {
'use strict';
angular
.module('app')
.component("myComponent", {
bindings: { obj: "=" },
controller: "ComponentController",
controllerAs: "vm",
template:
'<section class="result"><h2>{{vm.title}}</2>' +
'<h3>Using the Parent Controller values</h3>' +
'<ul><li>{{ vm.obj.a }}</li><li>{{vm.obj.b}}</li></ul>' +
'<h3>Using the Children controller values:'+
'<ul class="component-controller"><li>{{ vm.copiedObj.a }}</li><li>{{vm.copiedObj.b}}</li></ul>' +
'</section>'
});
})();
Run Code Online (Sandbox Code Playgroud)
我的组件控制器
(function() {
'use strict';
angular
.module('app')
.controller('ComponentController', ComponentController);
function ComponentController() {
var vm = this;
vm.title = "I'm the Children controller"
vm.copiedObj = vm.obj; // This should store the myObj variable …Run Code Online (Sandbox Code Playgroud) 我在控制器指令中有这个电话
ngDialog.openConfirm({
template : '<form-directive></form-directive>',
plain : true,
closeByNavigation : true,
scope : $scope
})
.then(function( response ) {
$log('SENDED');
});
Run Code Online (Sandbox Code Playgroud)
零件
ngDialog.openConfirm({
template : '<form-component></form-component>',
plain : true,
closeByNavigation : true,
scope : $scope
})
.then(function( response ) {
$log('SENDED');
});
Run Code Online (Sandbox Code Playgroud)
两者的HTML
<form ng-submit="alert("Hello !!!")">
<button type="submit">Send</button>
</form>
Run Code Online (Sandbox Code Playgroud)
当我单击Button on指令时,我在控制台上看到SENDED消息,但是对于组件看起来像忽略每个NG属性,点击按钮什么都不做,但正确加载模板.
相同的模板,相同的一切,完全相同,所以也许是一个ngDialog类组件的错误吗?
我只是希望ng-attributes在里面工作,如果我点击按钮提交然后关闭对话框并获得promise日志消息
如果我使用范围,指令也会失败:其中的{obj:'='}属性组件忽略了所有内容.
我认为是Scopes的某种问题 - 指令中的范围声明(或组件中的绑定) - 以及openDialog对象中的范围
javascript angularjs angularjs-scope ng-dialog angular-controller
一个愚蠢的问题
如何在表单字段中放入一个浮点值(如金额)因为如果我添加
t.number_field
我不能得到浮点数,只有整数,我想把44.67作为例子.
angularjs ×3
javascript ×3
d3.js ×1
d3.js-v4 ×1
dom ×1
forms ×1
html ×1
inheritance ×1
ios ×1
next.js ×1
ng-dialog ×1
react-hooks ×1
reactjs ×1
scope ×1
typescript ×1