上Window的负荷,每一个DD元素中Quote_App应该有一个onCLick触发功能追加事件Lorem,然而,Lorem返回nodeName并Id在最后一个元素的For声明,而不是该触发功能的元素.我想要Lorem返回触发该函数的元素nodeName和Id.
function Lorem(Control){
/* this.Control=Control; */
this.Amet=function(){
return Control.nodeName+"\n"+Control.id;
};
};
function Event(Mode,Function,Event,Element,Capture_or_Bubble){
if(Mode.toLowerCase()!="remove"){
if(Element.addEventListener){
if(!Capture_or_Bubble){
Capture_or_Bubble=false;
}else{
if(Capture_or_Bubble.toLowerCase()!="true"){
Capture_or_Bubble=false;
}else{
Capture_or_Bubble=true;
};
};
Element.addEventListener(Event,Function,Capture_or_Bubble);
}else{
Element.attachEvent("on"+Event,Function);
};
};
};
function Controls(){
var Controls=document.getElementById("Quote_App").getElementsByTagName("dd");
for(var i=0;i<Controls.length;i++){
var Control=Controls[i];
Event("add",function(){
var lorem=new Lorem(Control);
lorem.Control=Control;
alert(lorem.Amet());
},"click",Controls[i]);
};
};
Event("add",Controls,"load",window);
Run Code Online (Sandbox Code Playgroud)
目前你点击任何DD元素Lorem总是返回nodeName和Id …
这可能是一个简单的问题,有一个非常复杂的答案,或者我刚刚完全错过的非常简单的东西,但是,在像Prototype和jQuery等库中,$全局变量如何才能成为包含函数的对象,例:
$.ajax.get(…);
Run Code Online (Sandbox Code Playgroud)
还有一个功能本身,如:
$("…");
Run Code Online (Sandbox Code Playgroud)
任何帮助,甚至是指向更具说明性的网站的指针都会非常棒,我只是好奇!
例如,如果我创建了一个function($),它包含一个子对象(ajax),如:
var $ = function() {
this.ajax = {};
return this;
};
Run Code Online (Sandbox Code Playgroud)
我可以访问这个ajax对象$().ajax,但不喜欢$.ajax,你怎么得到它们?
我想要的是将单元格从一张纸复制到另一张纸,前提是同一行(不同列)中的另一个单元格在 Google 表格中具有特定值。
\n\n理想情况下,我希望这是实时的;如果我在第一张表中添加一行并且条件匹配,第二张表也会更新。这是一个例子:
\n\nSheet one\n\nColumn A | Column(s)\xe2\x80\xa6 | Column D\n=================================\nHello | | Yes\nWorld! | | Yes\nFoo | | Maybe\nBar | |\n\nSheet two\n\nColumn A | Column(s)\xe2\x80\xa6 | Column D\n=================================\nHello | |\nWorld! | |\nFoo | |\n | |\nRun Code Online (Sandbox Code Playgroud)\n\n因此,在此示例中,我的标准是,如果 中 的行单元格Column D等于Yes或Maybe,则该行的单元格 中Column A被复制到第二个工作表中。
角度样式指南说明了导入行间距:
看看很多Angular项目,包括Angular本身,惯例是首先导入Angular(@angular)模块,然后导入第三方模块(例如AngularFire2),然后导入我们自己的模块(服务,组件等),例如./some-service.ts.
再次看起来导入服务,然后是模型然后导入组件是惯例.
但接口和管道等呢?导入"无名"或通配符模块的惯例是什么,例如Firebase SDK或RxJs运算符?
例如:
import { Injectable } from '@angular/core';
import { AngularFireAuth } from 'angularfire2/auth';
import {
AngularFireDatabase,
FirebaseListObservable
} from 'angularfire2/database';
import * as firebase from 'firebase/app';
import 'rxjs/add/operator/take';
...
Run Code Online (Sandbox Code Playgroud)
import { Injectable } from '@angular/core';
import {
AngularFireDatabase,
FirebaseListObservable
} from 'angularfire2/database';
import * as firebase from 'firebase/app';
import { Observable } from 'rxjs/Observable';
import { AuthService } from './auth.service';
// `GridMetadata` is an …Run Code Online (Sandbox Code Playgroud) 一行代码说了很多话:
$foo = false;
$bar = $foo ? $foo : 'bar';
/* $bar == 'bar' */
$foo = 'foo';
$bar = $foo ? $foo : 'bar';
/* $bar == 'foo' */
Run Code Online (Sandbox Code Playgroud)
有没有更快的方式说"如果某些东西不是假的,那么就不要改变它(如果$foo不是false那么它会保持不变,否则,我们会改变它")?
我正在测试一个非常简单的组件,它显示/隐藏登录/退出按钮。
\n\n为此,我嘲笑我的AuthService服务,因为它依赖于 AngularFire2。
我遇到的问题是,似乎Mock AuthService没有提供我的模拟服务 () 来代替实际的AuthService.
在测试中should show the Facebook login button,service.isAnonymous预计是未定义的。实际服务中确实如此。但在模拟服务中是true。这个测试应该会失败。
另外,请注意我正在尝试调用该方法service.test(false);;在模拟服务中,此方法存在并且是public。但我收到错误:
\n\n\n类型“AuthService”上不存在属性“test”。
\n
这表明我的模拟服务没有被提供。
\n\n您可以在我的测试规范中看到我如何尝试两种方式来提供模拟服务(其中一种已被注释掉):
\n\nimport { DebugElement } from '@angular/core';\nimport {\n async,\n inject,\n ComponentFixture,\n TestBed\n} from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\n\nimport { FacebookLoginComponent } from './facebook-login.component';\nimport { AuthService } from '../shared/auth.service';\nimport { MockAuthService } from '../shared/testing/auth.service';\n\ndescribe('FacebookLoginComponent', () => {\n let …Run Code Online (Sandbox Code Playgroud) 在下面的代码中,if Control(trigers Toggle的第一个元素OL)不是Visible它应该被设置Visible而所有其他Controls(Controls[i])都是这样Hidden.
function Toggle(Control){
var Controls=document.getElementsByTagName("ol",document.getElementById("Quote_App"));
var Control=Control.getElementsByTagName("ol")[0];
if(Control.style.visibility!="visible"){
for(var i=0;i<Controls.length;i++){
if(Controls[i]!=Control){
Reveal("hide",20,0.3,Controls[i]);
}else{
Reveal("show",20,0.3,Control);
};
};
}else{
Reveal("hide",20,0.3,Control);
};
};
Run Code Online (Sandbox Code Playgroud)
虽然函数[ Toggle]工作正常,但实际上它已设置Controls[i]为Hidden即使已经存在.
通过添加If如下代码中的语句可以很容易地解决这个问题,肯定有一个更优雅的解决方案,可能是一个复杂的If条件?
function Toggle(Control){
var Controls=document.getElementsByTagName("ol",document.getElementById("Quote_App"));
var Control=Control.getElementsByTagName("ol")[0];
if(Control.style.visibility!="visible"){
for(var i=0;i<Controls.length;i++){
if(Controls[i]!=Control){
if(Controls[i].style.visibility=="visible"){
Reveal("hide",20,0.3,Controls[i]);
};
}else{
Reveal("show",20,0.3,Control);
};
};
}else{
Reveal("hide",20,0.3,Control);
};
};
Run Code Online (Sandbox Code Playgroud)
始终感谢您的帮助.
javascript ×3
angular ×2
convention ×1
copy ×1
foreach ×1
function ×1
if-statement ×1
libraries ×1
object ×1
php ×1
unit-testing ×1