Tag: JavaScript

什么是在HTML中的视口。

什么是HTML中的视口? 你可以举一些如何访问视口细节的例子吗?

React input defaultValue不会更新状态

我试图创build一个简单的forms与反应,但面临困难的数据正确地绑定到窗体的defaultValue。 我正在寻找的行为是这样的: 当我打开我的页面时,文本input字段应填入我的数据库中的AwayMessage文本。 这是“示例文本” 理想情况下,如果我的数据库中的AwayMessage没有文本,我想在文本input字段中有一个占位符。 但是,现在,我发现每次刷新页面时,文本input字段都是空白的。 (虽然我input的input确实保存并保持。)我认为这是因为input文本字段的html加载时,AwayMessage是一个空的对象,但不会刷新时,离开消息加载。 另外,我无法指定该字段的默认值。 我删除了一些清晰的代码(即onToggleChange) window.Pages ||= {} Pages.AwayMessages = React.createClass getInitialState: -> App.API.fetchAwayMessage (data) => @setState awayMessage:data.away_message {awayMessage: {}} onTextChange: (event) -> console.log "VALUE", event.target.value onSubmit: (e) -> window.a = @ e.preventDefault() awayMessage = {} awayMessage["master_toggle"]=@refs["master_toggle"].getDOMNode().checked console.log "value of text", @refs["text"].getDOMNode().value awayMessage["text"]=@refs["text"].getDOMNode().value @awayMessage(awayMessage) awayMessage: (awayMessage)-> console.log "I'm saving", awayMessage App.API.saveAwayMessage […]

Angular $ http发送OPTIONS而不是PUT / POST

我正在尝试通过PHP后端更新/插入MySQL数据库中的数据。 我正在用AngularJS构build前端,并使用$http服务与REST API进行通信。 我的设置看起来像这样: 我通过$ httpProvider设置头文件: $httpProvider.defaults.withCredentials = true; $httpProvider.defaults.headers = {'Content-Type': 'application/json;charset=utf-8'}; POST-Call看起来像这样: return $http({ url: url, method: "POST", data: campaign }); Chrome中的开发控制台向我展示了这一点: 当我从POST更改为PUT时,我发送一个OPTIONS调用,而不是一个PUT。 内容types切换到content-type 。 我的请求有效载荷是作为对象发送的: 如何正确设置我的标题? 编辑: PHP后端设置了一些头文件: $e->getResponse() ->getHeaders() ->addHeaderLine('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); $e->getResponse() ->getHeaders() ->addHeaderLine('Access-Control-Allow-Origin', '*'); 有什么遗漏吗?

使用RequireJS,我怎么传入全局对象或单身呢?

假设我在主页面编写代码,2个依赖关系需要一个对象的同一个实例,并且声明这个依赖关系。 什么是适当的方式去做这个? 基本上我想要做的就是说:“如果这个依赖没有被加载,那么加载它,否则,使用已经加载的同一个实例,并且只传递那个。”

为什么JavaScript中的“continue”语句不好?

在书中Javascript:好部分由道格拉斯克罗克福德,这是所有作者不得不说继续声明: continue语句跳转到循环的顶部。 我从来没有看到过一个代码没有通过重构来消除continue语句的改进。 这真让我困惑。 我知道Crockford对JavaScript有一些非常有见地的观点,但这听起来完全错误。 首先, continue不仅仅是跳到循环的顶部。 默认情况下,它也进行到下一个迭代。 那么克劳福德的说法是不是完全错误的信息呢? 更重要的是,我不完全明白为什么continue会被认为是不好的。 这篇文章提供了什么似乎是一般的假设: 为什么在一个循环内继续一个坏主意? 虽然我理解在某些情况下continue可能会使代码难以阅读,但我认为它可能会使代码更具可读性。 例如: var someArray=['blah',5,'stuff',7]; for(var i=0;i<someArray.length;i++){ if(typeof someArray[i]==='number'){ for(var j=0;j<someArray[i];j++){ console.log(j); } } } 这可以被重构为: var someArray=['blah',5,'stuff',7]; for(var i=0;i<someArray.length;i++){ if(typeof someArray[i]!=='number'){ continue; } for(var j=0;j<someArray[i];j++){ console.log(j); } } 在这个具体的例子中, continue并不是特别有益,但它确实certificate了它降低了嵌套深度。 在更复杂的代码中,这可能会增加可读性。 克罗克福德没有解释为什么不应该continue使用,那么在这个意见背后有什么更深的意义,我失踪了?

Array.length = 0和Array = 之间的区别?

有人可以解释两者之间的概念差异。 读取第二个通过销毁对现有数组的所有引用创build一个新的数组,并且.length = 0只是清空数组。 但是对我而言这并不起作用 //Declaration var arr = new Array(); 下面的代码是一次又一次执行的循环代码。 $("#dummy").load("something.php",function(){ arr.length =0;// expected to empty the array $("div").each(function(){ arr = arr + $(this).html(); }); }); 但是,如果我用arr =[]replacearr.length=0的代码replace代码,它工作正常。 任何人都可以解释这里发生了什么。

CoffeeScript是否允许JavaScript风格的==相等语义?

我喜欢CoffeeScript将==编译成JavaScript ===运算符 。 但是,如果你想要原始的JS ==语义呢? 他们有空吗? 我已经钻了文件,并找不到任何启用这个。 更一般地说,有没有办法将简单的JS内联到我的CoffeeScript代码中,以便编译器不会触摸它? 我宁愿避免编辑编译的JavaScript输出,因为我使用Chirpy在Visual Studio中自动生成它。

Jshint.com要求“严格使用”。 这是什么意思?

Jshint.com给出的错误: 第36行:var signin_found; 缺less“使用严格”的陈述。

哪些浏览器目前支持JavaScript的“let”关键字?

我正在开发一个应用程序,不必担心Internet Explorer,并且正在研究A +级浏览器中不在Internet Explorer1中的一些function。 我想要玩的这些function之一就是JavaScript的let关键字 我似乎无法得到他们的任何'让'例子工作在Firefox 3.6( 用户代理string:Mozilla的/ 5.0的(Windows; U; Windows NT 5.1的;美国; RV:1.9.2)壁虎/ 20100115 Firefox / 3.6(.NET CLR 3.5.30729))。 我得到SyntaxError: missing ; before statement SyntaxError: missing ; before statement执行let foo = "bar" SyntaxError: missing ; before statement 。 那么,哪些浏览器支持let关键字呢? (或者我做错了什么?)

我怎样才能有条件地导入一个ES6模块?

我需要做这样的事情: if (condition) { import something from 'something'; } // … if (something) { something.doStuff(); } 上面的代码不能编译; 它会抛出SyntaxError: … 'import' and 'export' may only appear at the top level 。 我尝试使用System.import如下所示,但我不知道System来自哪里。 这是ES6的build议,最终没有被接受吗? 该文章中的“程序化API”链接将我转到不推荐的文档页面 。