我在marionette.js应用程序中遇到循环引用问题. 问题是: App.js使用控制器创建路由器,并且该控制器再次需要app.js,因此它可以将视图添加到区域.正如您在下面看到的(控制器)当我打印应用程序时,它返回undefined,因为圆形参考.. controller.js:define( ['app', 'views/ProjectItemView'], function (Application, ProjectItemView) {'use strict';console.log(Application); // undefinedreturn Marionette.Controller.extend({sho...
我知道有很多类似的问题,我已经仔细研究过了.这还不够.所以. 我有这种情况,我需要复制一个元素,并知道我克隆的原始元素,所以我这样做是丑陋的:<div id="main"><p>Hello</p> </div>然后$(somewhere).append($('#main').clone().attr('src', 'main') ));现在这非常难看,因为我从原始元素中附加了ID我正在克隆.在我的情况下,我不知道元素是否有ID,所以我可以生成一个随机的,并分配如下:var id = $(element).attr('id');if (!id) {va...
ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值指的是简单的数据段; 引用类型值指那些可能由多个值构成的对象。基本数据类型:Undefined、Null、Boolean、Number 和String。这5 种基本数据类型是按值访问的,因为可以操作保存在变量中的实际的值。引用类型的值是保存在内存中的对象。 JavaScript 不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,当复制保存着...
我有这个代码:for (var i = 0; i < result.length; i++) {// call a function that open a new "thread"myObject.geocode({ param1: "param" }, function(results, status) {alert(result.title[i]);}); }.geocode函数(不是我的,所以我无法编辑)打开一个新的执行“线程”. 当我尝试在每一步上打印标题时,我总是得到i的最后可能值. 如何为每次迭代保留对i的正确值的引用?解决方法:你...
我正在将一个对象传递给一个函数.我正在拉出对象的属性,这是一个易于阅读的子对象.但是,第二个对象不影响它在第一个对象上的类似属性.为什么是这样? 我希望在保存事件时更新函数作用域之外的processItem.event.为什么必须更新processItem而不仅仅是指向它的局部变量? 这有效:this.submitForm = function(processItem) {var event = processItem.eventif (event.new) {EventDataService.create(event).then(function(response) {...
如果我创建一个对象,例如:var obj = {val1: 1,val2: Math.random()};实例化对象时,立即计算Math.random()并将结果分配给obj.val2. 每个对obj.val2的未来引用都将返回此初始随机数. 有没有办法在每次引用对象时强制重新评估此函数?所以每次对obj.val2的引用都会重新运行Math.random(),产生一个新生成的随机数?解决方法:您可以定义一个getter,这样每次访问该属性时,您都可以运行一个每次都返回一个新值的函数.var obj = {val1: 1,...
我需要允许用户单击“page-1.htm”中的链接并打开一个弹出窗口.然后,当用户在主浏览器窗口中浏览“page-2.htm”时,我需要能够引用弹出窗口. “page-1.htm”中的JavaScriptvar playerWin = window.open("player.htm", "playerWin", "width=300,height=130"); playerWin.play("song.mp3"); // play() is a function in player.htm“page-2.htm”中的JavaScriptplayerWin.play("tune.mp3");page-2.htm中的此代码生成错误“playerWin未...
我有一个ActiveX对象,我想在浏览器中使用(javascript).有一个我想打电话的功能.它的原型是:function TOPOSFiscalPrinter.DirectIO(Command: Integer; var pData: Integer;var pString: WideString): Integer;因此,该函数返回三个值:结果代码,pData和pString;在javascript中,函数不更新变量pData和pString;function test() {var d=1, s="DIRECIO:";var code = opos.DirectIO(1024, d, s);alert(d); alert(s); }变量d和s不会更新.它...
嘿大家,我试图隐藏/显示不同的html元素(div等等),具体取决于是否选中了复选框,或者是否从下拉框中选择了特定值.我想知道是否有人可以帮助我. html元素是沿着这个(下面)的行定义的,我不知道如何通过括号括起来引用它.我正在使用的页面启用了jquery,如果可能的话我想使用它.谢谢!<input type="checkbox" name="addons[2]" />另外 – 我无法修改复选框的代码.解决方法:jQuery来检查元素是否被选中:$("input[name='addons[2]']").att...
鉴于数据类似于:var data = [{id: 12345, name:'my products', items:[{ size: 'XXL', sku: 'awe2345', prices:[{type: 'rrp',prices: 10.99}, {type: 'sell_price', price: 9.99}, {type:'dealer', price:4.50} ] },{ size: 'XL', sku: 'awe2346', prices:[{type: 'rep', prices: 10.99}, {type: 'sell_price', price: 9.99}, {type:'dealer', price:4.50} ] } ] }] }]有没有办法评估数据对象中元素的字符串表示?例如:“data ...
在以下javascript代码中:function foo() {foo.val = foo.val || 'no val';return 'foo has ' + foo.val; }; function bar() {bar.val = bar.val || 'no val';return 'bar has ' + bar.val; }; var a = foo; foo.val = '1'; bar.val = '2'; a.val = '3'; foo = bar; 'foo says "' + foo() + '", bar says "' + bar() + '", a says "' + a() +'"';我期望的是:foo says “bar has 2”, bar says “bar has 2”, a says “foo has ...
var b=1;function someFunc(b) {//here }我希望能够引用在函数外定义的变量b.怎么能在javascript中完成?解决方法:您需要通过全局对象访问它,例如,浏览器中的窗口和node.js中的全局窗口.var b=1;function someFunc(b) {alert( window.b ); // or console.log( global.b ); }为什么?那么,所谓的激活对象(在ES3中)或词汇环境记录(ES5)将与变量名称b重叠.因此,只要JS引擎解析b,它就会在第一次出现时停止,这是在它自己的Scope中.
我正在编写一个jQuery插件,并且在将事件附加到函数时使用$.proxy保持上下文.像这样的东西:function myPlugin(element) {this.element = $(element); }$.extend(myPlugin.prototype, {init: function() {this.btns = this.element.find('.control-btns');this.register_events();},register_events: function() {this.btns.off('click.myplugin').on('click.myplugin', $.proxy(this.foo, this)); },foo: functi...
我正在学习一本关于Javascript的书,“Javascript:The Definitive Guide – David Flanagan”.本书的第3章讨论了Global对象,在这里,他们说global Window object has a self-referential window property that canbe used instead of this to refer to the global object.我从上面这一行中理解的是,窗口不是对象,而是自引用,但有人可以详细解释它是如何…以及如何为自定义对象创建自引用属性. 就像在Chrome控制台中一样,如果我输入...
请看下面的图片..注意时间戳 – 我的电脑不喜欢这个活动.每当我打开任何* .js或* .cshtml文件时,似乎都会出现此问题. 我已经关闭了“在JavaScript中使用杂项文件项目中的文件下载远程引用(例如http://) – >智能感知 – >一般,但问题还在继续. 我也尝试将“doorbell.io.js”包含在一个包而不是_Layout.cshtml文件中,但这不起作用. 如何阻止VS下载此JavaScript参考? 解决方法:解决眼前的问题 从“_references.js”中删除有问题的行...