小编Yer*_*ers的帖子

如何从单元测试中获取/设置 FormGroup 中的 Ionic 2 离子输入 FormControl 值?

我想编写一个单元测试,通过在输入字段中设置值然后检查关联的实例成员来与 Angular 2/Ionic 2 离子输入字段交互。

具体来说,我想:

  • 在组件实例中设置默认值。
  • 验证该值是否在相关的 DOM 元素中设置。
  • 在相关的 DOM 元素中输入一个值(输入字段)
  • 验证它是否反映在组件实例中。

我将它用于普通的 HTML 输入字段,但是我确实了解有关使用离子输入字段的一些内容。

我的单元测试和测试组件:

/**
* Form Tests
*/

import {Component} from '@angular/core';

import { ComponentFixture, TestBed, async, fakeAsync, tick } from '@angular/core/testing';

import { By }              from '@angular/platform-browser';
import { DebugElement }    from '@angular/core';

import {
  AbstractControl,
  FormControl,
  FormGroup,
  FormsModule,
  ReactiveFormsModule
} from '@angular/forms';

import {dispatchEvent} from '@angular/platform-browser/testing/browser_util';

// Ionic imports

import { 

  App, 
  MenuController, 
  NavController, 
  Platform, 
  Config, 
  Keyboard, 
  Form, 
  IonicModule 

} from 'ionic-angular';

describe( …
Run Code Online (Sandbox Code Playgroud)

ionic-framework angular

7
推荐指数
1
解决办法
3682
查看次数

在 Angular 5 中,如何从父组件访问动态添加的子组件?

我正在开发一个 Ionic + Angular 5 项目。

我需要动态加载一些组件。按照Angular 文档中的动态组件加载器示例,我能够成功加载组件并显示它们。

但是,我需要能够遍历加载的组件。

在创建和销毁子组件时,我可以轻松地在父组件中维护自己的组件列表,但在我看来,这很丑陋,而不是“角度方式”。

经过大量实验和研究,似乎我无法使用 @ViewChildren 访问动态添加的组件,因为它们有自己的视图。ViewChildren 未找到动态组件

这样对吗?

我可以使用 viewContainerRef.get() 遍历子视图并检索 ViewRefs。但是似乎没有办法在给定 ViewRef 的情况下获得对组件的引用?

我注意到 ViewRef 的“rootNodes”属性,但是该属性没有记录在 Angular 文档视图参考中。但是,它记录在 EmbeddedViewRef 文档嵌入式视图参考中,但似乎仍然没有让我访问组件。

所以问题是当我有一个动态添加子组件的父级时,我如何从父级循环到子组件(这样我就可以在子级中调用我的方法之一)?我怀疑是我遗漏了一些愚蠢的简单东西,有一些根本的误解,或者我应该使用不同的模式。

我修改了 Dynamic Component Loader 示例以突出显示我正在尝试做的事情。修改后的动态组件加载器

javascript typescript ionic-framework angular

7
推荐指数
1
解决办法
1725
查看次数

如何在两个div之间的contenteditable div中设置插入符/光标位置.

考虑以下可满足的div.

<div contenteditable="true">
<div>bold text</div><div>bold text</div>
</div>
Run Code Online (Sandbox Code Playgroud)

如果我将光标定位在两个div之间并开始输入,则文本将以粗体显示,而不是在两个div之间插入新的文本节点.如果你回到家并尝试在第一个div前面输入一些东西,也会发生同样的情况.它成为第一个div的一部分.

如果我检查从选择返回的范围的startContainer,我得到一个div的内容而不是我期望的空文本节点.

http://jsfiddle.net/9ZZpX/3/

问题是为什么会发生这种情况?如何选择div之间的位置,以便在输入内容时不会加粗?(显然我可以添加一个空间,这可以解决问题,但这很难看.)

如果您在状态更新框中输入@mention并按HOME,则可以在Facebook上看到此工作正常.如果键入文本将不会突出显示.

我唯一能想到的是拦截按键并以编程方式插入文本节点,但这看起来很难看.

我疯狂地搜索,找不到任何能证明这是如何工作的参考资料.显然有一些我不理解的东西,而且这方面的文档确实缺乏.

(我希望能够做的是检测光标即将进入其中一个div并跳过它.如果两个div正好相邻,则光标会跳转到其中一个div中搞砸了工程.)

关于我正在尝试做什么的更多信息:http://a-software-guy.com/2012/12/the-horrors-of-cursor-positioning-in-contenteditable-divs/

javascript dom range cursor contenteditable

6
推荐指数
1
解决办法
3405
查看次数

使用美国军事通用访问卡(CAC)个人身份验证(PIV)在Drupal中进行身份验证

我要求使用军用通用访问卡/个人识别验证系统启用登录到新的Drupal供电站点.

我遇到过这个模块:http://drupal.org/sandbox/larquin/1292622但是没有代码.

是否有适用于Drupal的模块?如果没有,有没有人知道任何PHP(或任何其他语言)示例代码,我可以看看基于模块?

或者,是否有另一种方法来支持这种不需要专用模块的身份验证方法?(例如ActiveDirectory?Apache配置?等)

php authentication cac drupal-modules

5
推荐指数
1
解决办法
1490
查看次数

一个人可以在第三方库的DOM元素中渲染Angular 2组件吗?

假设我有一个Angular 2应用程序,该应用程序包装了第三方库(如Leaflet Mapping API),该库由它自己进行DOM管理。

我正在从Angular调用第三方库组件。

但是,在Leaflet示例中,如果要渲染我的Angular组件之一/ inside /第三方库渲染的某些标记怎么办?

例如,是否可以在Leaflet弹出窗口中从Angular 2应用程序渲染组件?http://leafletjs.com/reference-1.1.0.html#popup

还是在一般情况下,如果我引用了Angular外部的DOM元素,是否有API可以将Angular组件附加到该DOM元素并进行管理?

dom leaflet angular

3
推荐指数
1
解决办法
1203
查看次数

如何使用Leaflet 1.1.0汇总来创建单个捆绑包?

我注意到Leaflet已经转向使用ES6模块和汇总.

http://leafletjs.com/2017/06/27/leaflet-1.1.0.html

鉴于此,我将尝试将LeafLet和各种插件以及我的应用程序捆绑到一个文件中.

我使用传单站点中最简单的教程作为测试用例.

我遇到的问题是,当我创建捆绑包时,会生成以下错误:

??   The 'this' keyword is equivalent to 'undefined' at the top level of an ES module, and has been rewritten
https://github.com/rollup/rollup/wiki/Troubleshooting#this-is-undefined
node_modules/leaflet/dist/leaflet-src.js (9:2)
 7:   typeof define === 'function' && define.amd ? define(['exports'], factory) :
 8:   (factory((global.L = global.L || {})));
 9: }(this, (function (exports) { 'use strict';
Run Code Online (Sandbox Code Playgroud)

对于我的测试,index.js文件是:

import 'leaflet';

function leafletTest() {

        var mymap = L.map('mapid').setView([51.505, -0.09], 13);

        L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
                maxZoom: 18,
                attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' +
                        '<a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' …
Run Code Online (Sandbox Code Playgroud)

javascript leaflet ecmascript-6 rollupjs

1
推荐指数
1
解决办法
726
查看次数