Tag: JavaScript

Angular js – route-ui添加默认参数

在我的应用程序中,我使用angular度UI路由器。 我有本地人(英语和希伯来语)我的基础语言是英语。 这就是为什么我想如果语言是英文不添加参数的url 例如: 主页英语 – > http://example.com/ Home希伯来语 – > http://example.com/he/ 关于我们English – > http://example.com/about 关于我们希伯来语 – > http://example.com/he/about 这可能吗 ? 这是我现在的代码 $stateProvider .state('/', { url: "/", templateUrl: "Assets/app/templates/home.html", controller: 'homeController' }) .state('activity', { url: "/activity", templateUrl: "Assets/app/templates/gallery.html", controller: 'galleryController' }) .state('page', { url: '/:pagename', templateUrl: "Assets/app/templates/page.html", controller: 'pageController' });

通过yield / generator来理解代码stream

我已经阅读了几个使用JavaScript生成器的代码示例, 比如这个 。 我能想到的最简单的发电机组块就是这样的: function read(path) { return function (done) { fs.readFile(path, "file", done); } } co(function *() { console.log( yield read("file") ); })(); 这确实打印出file的内容,但是我的挂断是在done调用的地方。 看起来,yield是语法糖,用于包装它在callback中返回的内容,并适当地分配结果值(至less在co的情况下,将错误参数引发到callback函数中)。 我对语法的理解是否正确? 使用yield时的yield是什么?

javascriptdate时区问题

我需要一个js Date对象,指定date和年份的值。 我期望new Date("2000-01-01")给我date对象与2000作为getFullYear()值,但如果我的电脑的时间设置设置为芝加哥时区,我得到Fri Dec 31 1999 18:00:00 GMT-0600 (CST)和布宜诺斯艾利斯: Fri Dec 31 1999 22:00:00 GMT-0200 (ARST) 。 有没有办法创buildDate对象,无论用户的机器上设置了什么时区,使用.getFullYear()函数返回我们在构造函数中设置的date? 更新:我需要这个Date对象在另一个库中使用(调用它的.getFullYear()方法,所以使用UTC getters并没有真正的帮助。

如何在JavaScript中实现DOM数据绑定

请把这个问题视为严格的教育。 我仍然有兴趣听到新的答案和想法来实现这一点 TL;博士 我将如何实现与JavaScript的双向数据绑定? 数据绑定到DOM 通过数据绑定到DOM我的意思是,例如,一个JavaScript对象与属性b 。 然后有一个<input> DOM元素(例如),当DOM元素改变时,改变反之亦然(即我的意思是双向数据绑定)。 下面是AngularJS的一个图表: 所以基本上我有JavaScript类似于: var a = {b:3}; 然后input(或其他forms)的元素,如: <input type='text' value=''> 我希望input的值是ab的值(例如),当input文本改变时,我也想改变ab 。 当ab在JavaScript中改变时,input改变。 问题 什么是一些基本的技术来完成这个普通的JavaScript? 具体来说,我想要一个很好的答案来提到: 绑定如何为对象工作? 如何听取forms的变化可能会奏效? 是否可以简单的方式只在模板级别修改HTML? 我不想跟踪HTML文档本身的绑定,只能在JavaScript中进行绑定(使用DOM事件,JavaScript保留对所使用的DOM元素的引用)。 我试过了什么? 我是胡子的粉丝,所以我试着用它做模板。 然而,当我尝试执行数据绑定本身时遇到了问题,因为Mustache将HTML处理为string,所以在得到结果之后,我没有参考viewmodel中对象的位置。 我唯一能想到的解决方法是使用属性修改HTMLstring(或创build的DOM树)本身。 我不介意使用不同的模板引擎。 基本上,我有一个强烈的感觉,我正在把问题复杂化,并有一个简单的解决scheme。 注意:请不要提供使用外部库的答案,尤其是那些有数千行代码的答案。 我已经使用(和喜欢!)AngularJS和KnockoutJS。 我真的不希望在'使用框架x'的forms的答案。 最好是,我想要一个未知的读者不知道如何使用许多框架来掌握如何实现双向数据绑定。 我不期待一个完整的答案,而是一个能够把这个想法传递出去的答案。

jQueryselect并包装textNode

我想selectdiv元素中的文本,并用<b>标签包装它。 <b>标签应该只包裹在div中的文本,而不是包含在子元素中的文本,如本例中的<p>标签。 <div>Testing <p>Some more text inside p</p> <p>asdasdasdasdasde p</p> Test </div> 我可以select使用以下的<p>文本,但是我不能为div做同样的事情。 我只想要div的文本,而不是p 。 对于这种情况,它应该select并包装Testing和Test 。 var x = $('p')[0].textContent; // this is not working for div. console.log(x); 的jsfiddle

jquery:“$(this)”究竟意味着什么?

我有一个程序,它运作良好。 看到这里 这是代码: <div id="round"></div> <style> #round{ position: absolute; width: 200px; height: 200px; border-radius: 50%; left: 400px; top: 200px; background-color: #e1e1e1; } </style> <script src="jquery.js"></script> <script src="jquery.easing.1.3.js"></script> <script> $(document).ready(function(){ $("#round").click(function(){ setInterval(function(){ $("#round").animate( {height: 250, width: 150, top:150, left: 425}, {duration: 300} ). animate( {height: 200, width: 200, top:200, left: 400}, {duration: 300} ); }, 0); […]

我怎样才能访问子窗口的dom树?

我用下面的代码打开一个新窗口: purchaseWin = window.open("Purchase.aspx","purchaseWin2", "location=0,status=0,scrollbars=0,width=700,height=400"); 我想访问purchaseWin的dom树,例如 purchaseWin.document.getElementById("tdProduct").innerHTML = "2"; 它不起作用。 我只能这样做: purchaseWin.document.write("abc"); 我也尝试这个,它也不工作: $(purchaseWin.document).ready(function(){ purchaseWin.$("#tdProduct").html("2"); }); 我该怎么办?

通过HTTPS页面的HTTP Ajax请求

我有一个网站与HTTPS连接的一些页面。 从这些HTTPS页面,我必须使用HTTP Ajax请求来检索像空白字段这样的错误。 但是这个错误信息不会来。 有没有解决scheme,或者我必须使这个AJAX请求文件HTTPS连接?

如何将variables名称转换为JavaScript中的string?

有没有办法将variables名称转换为JavaScript中的string? 更具体地说: var a = 1, b = 2, c = 'hello'; var array = [a, b, c]; 现在,在我经历数组时,我需要将variables名(而不是它们的值)作为string – 这将是“a”或“b”或“c”。 我真的需要它是一个string,所以它是可写的。 我怎样才能做到这一点?

如何停止setTimeout循环?

我试图build立一个图像精灵的加载指标,我想出了这个function function setBgPosition() { var c = 0; var numbers = [0, -120, -240, -360, -480, -600, -720]; function run() { Ext.get('common-spinner').setStyle('background-position', numbers[c++] + 'px 0px'); if (c<numbers.length) { setTimeout(run, 200); }else { setBgPosition(); } } setTimeout(run, 200); } 所以输出是这样的 http://jsfiddle.net/TTkre/ 我不得不使用setBgPosition(); 在其他内部保持这个运行在一个循环,所以现在我的问题是如何停止这个循环,一旦我想[加载完成]?