草庐IT

location-provider

全部标签

javascript - 为什么 angular 2 provider {useValue : . ..} 克隆对象?

Angular2高级测试文档:userServiceStub={isLoggedIn:true,user:{name:'TestUser'}};TestBed.configureTestingModule({declarations:[WelcomeComponent],//providers:[UserService]//NO!Don'tprovidetherealservice!//Provideatest-doubleinsteadproviders:[{provide:UserService,useValue:userServiceStub}]});fixture=TestBe

javascript - 我什么时候应该在我的 Angular JS 单元测试中使用 $provide 与 Jasmine Spies

我在一个大型Angular应用程序上工作,最初我们通过使用$provide来模拟服务来完成大量测试。然而,我们现在在我们的测试中有很多JasmineSpies,以便对服务进行stub和监视。即spyOn(myService,'myMethod').andReturn'myValue'我们真的应该为此使用$provide还是在某些情况下监视服务是最好的方法?在Angular测试中,他们使用spyspyingonJquery我会将其视为外部服务。spyOn(jq.prototype,'on');$provide似乎更多用于内部服务。module(function($provide){$pr

javascript - 为什么在使用相同的 location.href(或空)推送时 window.onpopstate 上的 event.state 为空

在不更改URL的情况下推送到历史记录并设置数据时:window.history.pushState({stateName:"myStateName",randomData:window.Math.random()},"myStateName",location.href);....然后监听弹出事件并通过按下浏览器中的返回按钮触发它:window.onpopstate=function(event){console.log(event.state);//logsnull}大多数时候你会得到null作为状态值而不是:{stateName:"myStateName",randomData:0

javascript - Angular : Providing methods to ng-model

我最近开始学习Angular。我想将一个方法传递给ng-model或一个可能计算为1的表达式。在这个fiddle中http://jsfiddle.net/C4aGk/你会看到我已经将该字段硬编码为ng-model="record.inner[0].text"并且它有效,现在问题是,我想替换硬编码零,带有在运行时返回的内容,由标准选择id=1。我的HTML代码:{{record.outer}}{{nested.id}}-{{nested.text}}以及对应的js:functionMainController($scope){$scope.records=[{outer:"Hello",

javascript - 是否可以用自定义函数覆盖 window.location 函数?

是否可以禁用或更好地替换为自定义函数window.location?这个问题是相关的:Disableabuilt-infunctioninjavascript(alert)虽然它适用于window.alert,但不适用于window.location。我们希望能够找到一种方法来替换或禁用(替换将是理想的,这样我们就可以使用AJAX记录)window.location...肮脏的广告商有时会使用它从我们的网络属性(property)中窃取人们。有什么想法吗?即使是只适用于少数特定浏览器的东西也可以,因为一旦被捕获(通过AJAX日志记录)我们就可以相当快地对此采取行动。

javascript - 未知提供程序 : $rootElementProvider when using $injector to get $location service before angular. Bootstrap

您好,我正在尝试手动引导一个Angular应用程序,但有一些业务需要先处理。This文章提到了我感兴趣的技术。当我注入(inject)时:var$injector=angular.injector(["ng"]);var$http=$injector.get("$http");它工作正常,但是:var$injector=angular.injector(["ng","myApp"]);var$location=$injector.get("$location");抛出以下错误。UncaughtError:[$injector:unpr]Unknownprovider:$rootElem

javascript - 在不破坏历史记录的情况下分配给 document.location.href

在测试document.location.href时,我观察到当用户发起一个操作导致javascript分配给document.location.href时,新的URL被添加到历史记录中。但是,如果调用是由javascript发起的,例如XMLHTTPRequest的状态更改,则历史记录中当前页面的条目将被覆盖。我是否正确描述了这一点?在后一种情况下,是否有办法让页面更改反射(reflect)在历史记录中? 最佳答案 我遇到了同样的问题,并找到了适合我的解决方法代替functiononAjaxCallback(evt){locati

javascript - 浏览器中 location.hash 的最大大小

我想使用location.hash对我的客户端应用程序的状态进行编码,这样用户就可以使用URL轻松地添加书签和/或共享应用程序的完整状态。关于url的最大长度有许多(过时的)主题,尤其是InternetExplorer中的限制。但是,尚不清楚location.hash的最大大小是多少。因为散列只存在于客户端,HTTP或服务器的限制是不相关的。我做了一个简单的jsfiddle来测试这个:http://jsfiddle.net/Jz3ZA/.在Chrome和Firefox(Ubuntu12.04)中,最大50K的哈希值似乎都有效。这是否意味着我可以使用它们来存储状态,或者我忽略了其他限制?

javascript - 有没有办法让 firefox 不自动对分配给 document.location.hash 的值进行 url 解码?

我正在使用document.location.hash来保存页面上的状态,并且我将url编码的键值对放在那里,由“&”字符分隔。到目前为止,一切都很好。但是我在Firefox上遇到了一个恼人的问题——Firefox会在进入的过程中悄悄地对哈希值进行url解码,所以当你稍后取出它时,它已经被解码了。我可以通过检测何时在firefox上运行并在运行时对所有内容调用encodeURIComponent两次来修补问题,但显然这很可怕,我真的不想那样做.这是一个简单的示例,我将“=”编码为“%3D”,将其放入散列中,当我稍后将其取出时,它会自动变回“=”://onthewayin::docume

javascript - window.location.href on ajax success 不工作

我已经尝试解决这个问题一段时间了,但我无法让它工作。当用户单击链接时,系统会要求他确认是否要执行此操作。然后进行ajax调用。调用的脚本工作正常并返回一个字符串重定向到哪里。我在这里看到了几篇关于window.location问题的帖子,但没有一篇能解决我的问题。我的代码:functionconfirm(a,b,c){varr=confirm("Areyousuretodothis?");if(r==true){$.ajax({type:"POST",url:"/process-action.php",async:false,data:{a:a,b:b,c:c},success:fun