我正在尝试构建一个数据驱动的表单,输入来自另一个组件,如下所示:
<form [formGroup]="signupForm" (ngSubmit)="onSubmit()">
<app-form-group [name]="name"></app-form-group>
<app-form-group [name]="email"></app-form-group>
<app-form-group [name]="other"></app-form-group>
</form>
Run Code Online (Sandbox Code Playgroud)
该app-form-group组件将如下所示:
<div class="form-group">
<label class="col-md-2 control-label">{{Name}}</label>
<div class="col-md-9">
<input class="form-control" [name]="name" [formControlName]="formCtrlName">
</div>
Run Code Online (Sandbox Code Playgroud)
问题是formControlName需要一个formGroup指令,因此我得到这个错误:
Error : Error in ./FormGroupComponent class FormGroupComponent - inline template:3:58 caused by: formControlName must be used with a parent formGroup directive.You'll want to add a formGroup
directive and pass it an existing FormGroup instance (you can create one in your class).
Run Code Online (Sandbox Code Playgroud)
有什么方法可以解决这个问题吗?
我正在尝试使用文件中的$background-color变量为我的应用设置背景颜色variables.scss.当设置一个颜色时,这样可以正常工作,如#000或#fff,但不能使它适用于渐变.
$background-color: linear-gradient(to bottom, #000 0%, #fff 100%);
此代码抛出以下Sass错误:
argument '$color' of 'rgba($color, $alpha)' must be a color Backtrace.
那么,如何将背景颜色设置为渐变?
我有一个Ionic 3应用程序,我想根据Playstore的下载链接在其中设置一些变量.例如,http://linktoplaystore.com/app?account=4将我的应用程序中的帐户变量设置为4.有没有办法实现这一点?
我正在尝试创建一个自定义异步验证器,它将转到服务器并检查电子邮件是否已注册.
不幸的是,似乎get请求永远不会被触发,因为没有任何反应.我在里面尝试了多个console.logs subscribe,但是他们没有运行.
我已经检查过该请求是否在验证器之外工作,而且确实如此,所以这不是问题所在.
import { Component } from '@angular/core';
import { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';
import { Response, Http } from '@angular/http';
@Component({
templateUrl: 'build/pages/welcome/signup/signup.html',
providers: [AuthService, CustomValidators]
})
export class Signup {
signupForm: FormGroup;
constructor(private formBuilder: FormBuilder, private http: Http) {
this.signupForm = formBuilder.group({
'email': ['', Validators.required, this.checkEmail],
}):
}
checkEmail(control: FormControl): Promise<any> {
const promise = new Promise<any>(
(resolve, reject) => {
this.http.get('/sharealead/main.php?action=checkEmail').subscribe(
(res: Response) => {
console.log('it never gets here');
console.log(res)
if …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 for 循环创建多个标记,将坐标存储到数组中。然后,我想将该标记放入图层组,并能够使用 L.control.layers 显示/隐藏它们。问题是只会显示最后创建的标记。我知道这与闭包和作用域有关,但我是 JavaScript 的新手,我还不了解这些东西。
var map = L.map('map').setView([44.6499282, 22.6327532], 14);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
var coordinates = [
[44.649, 22.632],
[44.650, 22.642],
[44.652, 22.632]
];
for (i = 0; i < coordinates.length; i++) {
marker = L.marker([coordinates[i][0], coordinates[i][1]]);
marker.addTo(map);
}
var overlay = {'markers': marker};
L.control.layers(null, overlay).addTo(map);
Run Code Online (Sandbox Code Playgroud)
这是 JSFiddle 的链接:http : //jsfiddle.net/pufanalexandru/gryvsae2/
我有一个Android应用程序,我正在尝试打印一些包含非拉丁字符的文本.
我正在使用此代码向ESC t n打印机发送命令:
byte[] buf = new byte[]{0x1B, 0x74, (byte)2}; // 2 is the codetable for PC850: Multilingual
this.mBaseOutputStream.write(buf);
Run Code Online (Sandbox Code Playgroud)
然后,我尝试像这样打印我的代码:
this.mBaseOutputStream.write("????? ?îîîîîî?".getBytes("cp850"));
但我得到的所有非拉丁字符都是奇怪的符号.那么我做错了什么?
我有一个简单的表格建立与FormBuilder:
this.contactForm = formBuilder.group({
'name': [''],
'email': [''],
'phone': [''],
});
Run Code Online (Sandbox Code Playgroud)
我想观察每个控件的更改,并在发生这种情况时使用更新后的值运行一个函数:
getContacts(value: any) {
this.phoneContacts.findContact(value).then(
contacts => {
// do something
}
);
}
Run Code Online (Sandbox Code Playgroud)
现在,我正在为每个控件执行此操作,使用它bind来访问this组件的对象:
this.contactForm.get('name').valueChanges.subscribe(this.getContacts.bind(this));
this.contactForm.get('email').valueChanges.subscribe(this.getContacts.bind(this));
this.contactForm.get('phone').valueChanges.subscribe(this.getContacts.bind(this));
Run Code Online (Sandbox Code Playgroud)
有什么方法可以观看更改并仅通过一次订阅获得更新的价值?我知道我可以直接订阅this.contact.form,但是我将获得所有控件作为值,而不仅仅是更新的控件。
我正在尝试将我的应用程序从 Cordova 迁移到 Capacitor,但我仍然需要使用诸如后台地理定位之类的功能。为此,我正在使用这个插件:https : //ionicframework.com/docs/native/background-geolocation
所以,为了测试这个,我创建了一个新的应用程序,添加了 Capacitor 并安装了这个插件。如此处所述(https://github.com/ionic-team/capacitor/issues/2529#issuecomment-603205348),我将此行添加到我的字符串文件中:
<string name="mauron85_bgloc_account_name">@string/app_name</string>
<string name="mauron85_bgloc_account_type">$PACKAGE_NAME.account</string>
<string name="mauron85_bgloc_content_authority">$PACKAGE_NAME</string>
Run Code Online (Sandbox Code Playgroud)
在那之后,我跑了 npx cap sync
现在,每当我尝试构建应用程序时,都会收到以下错误:
Execution failed for task ':capacitor-cordova-android-plugins:compileDebugJavaWithJavac'.
在我的控制台中,上面有很多缺失的导入错误,如下所示:
C:\Users\zxy\Desktop\mobile_apps\testApp\android\capacitor-cordova-android-plugins\src\main\java\com\evgenii\jsevaluator\JsEvaluator.java:4: error: package android.support.annotation does not exist
import android.support.annotation.VisibleForTesting;
> C:\Users\zxy\Desktop\mobile_apps\testApp\android\capacitor-cordova-android-plugins\src\main\java\com\marianhello\bgloc\BackgroundGeolocationFacade.java:17: error: package android.support.v4.content does not exist
> import android.support.v4.content.ContextCompat;
> ^
> C:\Users\zxy\Desktop\mobile_apps\testApp\android\capacitor-cordova-android-plugins\src\main\java\com\marianhello\bgloc\BackgroundGeolocationFacade.java:18: error: package android.support.v4.content does not exist
> import android.support.v4.content.LocalBroadcastManager;
Run Code Online (Sandbox Code Playgroud)
知道如何让这个插件与 Capacitor 一起工作吗?
android ×3
angular ×3
ionic2 ×2
asynchronous ×1
capacitor ×1
closures ×1
css ×1
escpos ×1
ionic-native ×1
ionic3 ×1
java ×1
javascript ×1
leaflet ×1
printing ×1
sass ×1