目前,我有一个练习项目,以满足KarmaJS和单元测试的需求.广泛的问题是,我真的没有透视Karma在幕后所做的事情,而且我似乎无法在相关领域找到足够的文件.没有进一步延迟......
这是我的文件夹结构:
root
|-/lib
|-/[dependencies] (/angular, /angular-mocks, /bootstrap, /etc) # from bower
|-/src
|-/[unreferenced directories] (/js, /css, /views) # not referenced anywhere
|-app.js # sets up angular.module('app', ...)
|-globals.js # may be referenced in RequireJS main file; not used.
|-index.html # loads bootstrap.css and RequireJS main file
|-main.js # .config + require(['app', 'etc'])
|-routeMap.js # sets up a single route
|-test-file.js # *** simple define(function(){ return {...}; })
|-/test
|-/spec …Run Code Online (Sandbox Code Playgroud) 暂时,让我们假设我写了下面的代码:
<header class="header hap" [ngClass]="authority">
<div class="header-inner">
<div class="header-identity">
<a id="theLogo" class="logo" [routerLink]="[links.home]" title="Navigate to Home">
<img src="assets/logo-white.svg" alt="Logo">
</a>
<span class="client-logo" *ngIf="user.brandingImage && !user.isTheAdmin()">
<img class="brandingImage" [src]="user.brandingImage" [alt]="user.brandingName" onerror="this.style.display='none'">
</span>
[ more links ]
</div>
<nav class="main-nav for authenticated" [ngClass]="{'active':showMenu, 'app-only':!isCurrPageAdminApp()}">
<button class="menu" (click)="toggleMenu()">Menu</button>
<div class="main-nav-flyout" *ngIf="showMenu">
<div class="nav-header">
<ul>
<li>
<a id="main-nav-profile" [routerLink]="['/profile']"><span class="icon icon-user2"></span> My Profile</a>
</li>
[ more dropdown items ]
</ul>
<a id="main-nav-close" class="close"(click)="onClickMenuClose()"><span class="icon-cross"></span></a>
</div>
<div class="nav-body">
<ul *ngIf="isCurrPageAdminApp()" class="main-nav-list">
<li class="current-app">Administrative Tools</li> …Run Code Online (Sandbox Code Playgroud) 你好,
我是 ESRI/ArcGIS API 的首次用户。我已经设置了一个帐户...等等...并拥有一个节点服务器,该服务器获取 ESRI 令牌并向 ESRI/ArcGIS 服务端点 - VRP(车辆路由问题)服务发出请求。
我只是想“启用”“服务目录”......或者本例中的任何语言。
我不想做任何高级的事情,只是接触服务来熟悉输入和输出——非常简单 直接的基本内容。
但是,当我尝试此请求时,响应正文是一个 HTML 字符串 ( 200/ok):<b>Error: Services Directory has been disabled.</b>我已经(很多)搜索了解决方案,包括从以下页面搜索:
http://resources.arcgis.com/en/help/rest/apiref/admin.html
足够讽刺的是(或者可能太多了),我在 ESRI/ArcGIS 上找不到任何内容,或者甚至在 Stackoverflow 上都没有找到任何关于此事的信息,尽管它似乎是使用这些服务的第一个障碍。
如果您愿意的话,请查看上面的链接,希望您能启发我了解它的解释——即 URIhttp://<host>:<port>/<instance>/admin模式。看来我可能需要在某处托管/安装管理/管理服务器(?)。我现在正在使用我的localhost(注册免费/开发人员包)——我需要先部署才能安装/配置某些东西吗?ESRI 在线门户/myesri 中是否有“启用服务‘X’ ”?
身份验证后,我无法从我的应用程序的前端请求数据 - 但只能通过服务器端视图和Postman我可以在登录后进行后续数据请求,或者通过在Postman中对我的用户进行身份验证然后在我的数据请求中进行数据请求应用程序.
首先,我是服务器端的新手.
我有一个SailsJS后端,我正在使用REST.使用LocalStrategy创建和验证用户工作正常 - 实际上,甚至使后续数据请求工作正常 - 但不是通过我的应用程序的AJAX.
我可以使用Postman或服务器端视图来访问数据,例如/list; 在我的应用程序中进行身份验证后发出请求不起作用 - 除非我跳回Postman并登录,然后跳回我的应用程序并重新发送请求.
我注意到set-cookie我的应用程序在第一个身份验证请求和请求之间有所不同/list.
如果有必要,我可以展示一些代码,但这似乎是我在制作经过身份验证的AJAX请求时缺少一个非常高级的基本概念.
编辑:
我的前端是在不同的领域-帆上运行localhost:1337,而我的UI上运行localhost:8100.
这是我的/api/config/cors.js样子:
module.exports.cors = {
allRoutes: true,
origin: '*',
credentials: true,
// methods: 'GET, POST, PUT, DELETE, OPTIONS, HEAD',
// headers: 'content-type'
};
Run Code Online (Sandbox Code Playgroud)
我在前端使用了角度,随后的请求正在使用withCredentials: true- 我是否需要将此添加到登录请求中?我是否必须在请求中同时发送用户名/电子邮件?
如何在登录后允许我的所有后续数据验证请求?
this任何人都可以向我解释以下场景吗?
ng-controller="Parent as thus"
Run Code Online (Sandbox Code Playgroud)
ng-controller="Parent as this"
Run Code Online (Sandbox Code Playgroud)
使它成为关键字的单个字母 - 我想要 - 破坏了森林。
为什么是这样?
PS 我知道这个vm约定,但我发现它干扰了控制器/视图模型的可移植性。
我有一个指令,需要听取工程师声明提供的任何事件.这是一个例子:
import { Directive, Input, ElementRef, HostListener, OnInit } from '@angular/core';
//--
import { Sandbox } from '../../../sandbox';
@Directive({ selector: '[addItem]' })
class AddNewItemDirective implements OnInit {
@Input('addItem') data;
@Input() on: string = 'click';
constructor(private $: Sandbox, private element: ElementRef) { }
ngOnInit() { console.log('@INIT', this); }
@HostListener('click', ['$event']) handleEvent(e) {
console.log('add-item', e);
}
}
export { AddNewItemDirective };
Run Code Online (Sandbox Code Playgroud)
这是它的用法:
<button class="btn btn-primary" [addItem]="{ name: 'Jeffrey' }" on="focus">Add New Item</button>
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,我的直觉告诉我,我应该能够根据输入参数在渲染时动态设置HostListener的参数:
@Directive({ selector: '[addItem]' })
class AddNewItemDirective implements …Run Code Online (Sandbox Code Playgroud) javascript event-listener typescript angular-directive angular
我有一个可能如下所示的集合:
[ { id: '998' }, { id: '997' }, { id: '996' } ]
Run Code Online (Sandbox Code Playgroud)
我想做类似以下的事情:
var ids = collection.map(Object.getMyProperty.bind(this, 'id'));
Run Code Online (Sandbox Code Playgroud)
结果:
[ '998', '997', '996' ]
Run Code Online (Sandbox Code Playgroud)
不用说,我们可以为此编写一个迭代器,但我正在寻找一些更紧凑的东西.我说'忍者移动'意味着一些非常具有创造性的东西,例如Array.apply(null, { length: 3 });导致长度为3的数组 - 或者来自Resig's Secrets ...的其他方法.
任何人都有简单,紧凑,快速的方法来实现这一点?
谢谢!
作为我寻找解决方案的第一步,我已经彻底阅读了Angular2 为什么使用 @Output 而不是 @Input for callbacks。标题似乎问了同样的问题,不过,其中的问题在接受标准方面相当浅薄,我的问题正在寻找更多细节。请参阅下文了解此类详细信息。
[至少] 有 3 种方法可以在 Angular++(不是 1.x)中完成 Child-to-Parent 通信,但为了更好地实现第 3 个选项,我只关心其中的 2 个问题:
使用EventEmitter作为@Output
@Output() onEvent: EventEmitter<any> = EventEmitter<any>();
Run Code Online (Sandbox Code Playgroud)
使用回调作为 @Input
@Input() handleEvent: Function = new Function();
Run Code Online (Sandbox Code Playgroud)
javascript ×5
angular ×2
typescript ×2
absolute ×1
ajax ×1
angularjs ×1
arcgis ×1
callback ×1
collections ×1
css ×1
css-position ×1
esri ×1
geospatial ×1
getter ×1
html ×1
jasmine ×1
karma-runner ×1
object ×1
passport.js ×1
requirejs ×1
sails.js ×1
tabindex ×1
this ×1
unit-testing ×1