小编Guy*_*afe的帖子

Angular 2模型驱动表格中的下拉列表

我有一个模型驱动的表单,我想添加一个包含几个选项的下拉列表.选项来自预先获取的列表,并且表单的模型被注入到组件中.表单已正确加载:模型中的所有字段都已正确填充,abd下拉列表的选项列表也正确加载.
唯一的问题是我无法设置selected列表的值,并且它首先显示为空值.

在这里,我正在加载HMOs列表,然后加载患者,然后才创建表单.
表格的所有值(名称,id等在此省略)都正确加载到表单中.
表单中的下拉列表已正确填充:所有HMO都填充列表.
但是,缺少列表中的选定值,并且加载的丢失没有初始值.
出于调试目的,我已经将option标签中的布尔条件替换patient.hmo.uid == hmo.uid为函数调用:isSelected(hmo).
此函数基本上执行相同的比较并返回其值,但首先记录它.实际上,我看到具有正确hmo的true选项获取false值,所有其他选项获取值,这意味着所有数据都正确加载.

此外,当我设置[selected]="true"(总是为真)时,我确实看到更改有效:选择了最后一个选项(HTML中的默认选项).

那我在哪里错了?我该如何正确设置所选选项?

组件的代码(除了HMO之外的所有字段都被省略):

import {Component, Input, Inject, OnInit} from "@angular/core";
import {
  FormGroup,
  FormControl,
  REACTIVE_FORM_DIRECTIVES,
  Validators,
  FormBuilder,
  FormArray
} from "@angular/forms";
import {Patient} from "./patient";
import {PatientsService} from "./patients.service";
import {Hmo} from "../hmos/hmo";
import {HmosService} from "../hmos/hmos.service";
import {Doctor} from "../doctors/doctor";
import {DoctorsService} from "../doctors/doctors.service";
import {Router, ActivatedRoute} from "@angular/router";
import {Subscription} from "rxjs/Rx";
import {Response} …
Run Code Online (Sandbox Code Playgroud)

html forms angular

15
推荐指数
1
解决办法
2万
查看次数

用新的位置覆盖内存中的对象

我有一个要“转换”为另一个对象的对象。为此,我placement new在第一个对象上使用了一个,该对象在其自身地址的顶部创建了另一种类型的新对象。

考虑以下代码:

#include <string>
#include <iostream>

class Animal {
public:
  virtual void voice() = 0;
  virtual void transform(void *animal) = 0;
  virtual ~Animal() = default;;
};

class Cat : public Animal {
public:
  std::string name = "CAT";
  void voice() override {
    std::cout << "MEOW I am a " << name << std::endl;
  }
  void transform(void *animal) override {
  }
};

class Dog : public Animal {
public:
  std::string name = "DOG";
  void voice() override {
    std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ placement-new

15
推荐指数
3
解决办法
1099
查看次数

Gradle:同一项目上的 Java 和 Android 子项目

TL;DR:是在完全不同的 Gradle 项目上开发纯 Java 和 Android 应用程序的唯一方法吗?

我正在开发一个项目,其中包括一个 Android 应用程序和一个 Java 后端(以及一些其他常见的 API)。
作为 IDE,我使用的是 IntelliJ Idea。
我想要一个 Gradle 项目(将在单个 Idea 实例上打开),其中包含所有应用程序作为子项目。

我的问题是,为了允许 Android 插件,我需要buildScriptbuild.gradle文件的部分中设置它:

dependencies {
    classpath 'com.android.tools.build:gradle:2.2.3'
}
Run Code Online (Sandbox Code Playgroud)

这会在整个 Gradle 构建过程中强制使用 android 插件,并导致纯 Java 子项目出错(它们被自动设置为使用 Android SDK 而不是 Java SDK 构建)。

我想到的一种解决方法是创建两个单独的项目(一个用于 Android,一个用于 Java),将通用 JAR 导出到本地 Maven 存储库中,然后从那里将其导入到 Android 项目中。

有没有更好的解决方案可以让我将所有代码库放在同一个地方?

java android intellij-idea gradle

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

在应用程序插件中调整 Gradle startScripts

我将 Gradle 与应用程序插件一起使用。
我正在尝试调整startScripts任务。我觉得调优不需要太多改动,所以我想改一下标准任务:

  • 完整的发行版包括它自己的 JRE,所以我希望脚本引用该库而不是使用 JAVA_HOME
  • 如果可能,请删除 UNIX 启动脚本。我只需要 Windows 脚本。

如果可能的话,我更喜欢了解任务中的哪些变量要更改,而不是从头开始重写任务。我的问题是如何做到这一点。查看文档,我看到仅用于applicationName, classpath, defaultJvmOpts, exitEnvironmentVar, mainClassName, optsEnvironmentVar, 的访问器outputDir,这些对我来说都无关紧要。您能指导我查看描述如何执行此操作的文档吗?

java gradle

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

来自 Janino 和 Commons-Compiler 的 Spark java.lang.NoSuchMethodError

我正在构建一个使用 Spark 进行基于随机森林分类的​​应用程序。尝试运行此程序时,我从该行收到异常: StringIndexerModel labelIndexer = new StringIndexer().setInputCol("label").setOutputCol("indexedLabel").fit(data);

看起来代码以某种方式达到了 Janino 2.7.8 版,尽管我知道我需要 3.0.7。我不知道如何正确设置依赖项以强制构建使用正确的版本。它似乎总是尝试使用2.7.8。

我有可能以某种方式清理缓存吗?

这是来自gradle dependencies

+--- org.codehaus.janino:janino:3.0.7 -> 2.7.8
|    +--- org.codehaus.janino:commons-compiler:3.0.7
Run Code Online (Sandbox Code Playgroud)

定义依赖项的 Gradle 部分:

dependencies {
  compile('org.apache.hadoop:hadoop-mapreduce-client-core:2.7.2') { force = true }
  compile('org.apache.hadoop:hadoop-common:2.7.2') { force = true }
  // https://mvnrepository.com/artifact/org.codehaus.janino/janino
  compile (group: 'org.codehaus.janino', name: 'janino', version: '3.0.7') {
    force = true
    exclude group: 'org.codehaus.janino', module: 'commons-compiler'
  }
  // https://mvnrepository.com/artifact/org.codehaus.janino/commons-compiler
  compile (group: 'org.codehaus.janino', name: 'commons-compiler', version: '3.0.7') {
    force = true
    exclude group: 'org.codehaus.janino', module: 'janino'
  } …
Run Code Online (Sandbox Code Playgroud)

java gradle apache-spark

3
推荐指数
2
解决办法
6385
查看次数

Angular 6 - 将 Bing 地图添加到传单地图

我正在使用leaflet-bing-layer插件,以便使用 Leaflet 添加基于 Bing 的地图。
因为我也在使用 OSM,所以我同时导入leafletleaflet-bing-layer. 导入语句如下:

import * as L from 'leaflet';
import * as B from 'leaflet-bing-layer';
Run Code Online (Sandbox Code Playgroud)

以及组件内部传单的用法LeafletMapComponent

constructor () {
    this.baseMaps = {
      OpenStreetMap: L.tileLayer ("https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png", {
        attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>, Tiles courtesy of <a href="https://hot.openstreetmap.org/" target="_blank">Humanitarian OpenStreetMap Team</a>'
      }),
      BingMap: B.tileLayer.bing(LeafletMapComponent.BING_KEY, {type: 'AerialWithLabels'})
    };
  }
Run Code Online (Sandbox Code Playgroud)

不幸的是,lingBingMap: B.tileLayer.bing(...收到一个错误: 无法读取未定义的属性 'bing'

我没有在 Angular 和 Typescript 中找到任何 Bing 地图的工作示例,所以我想这里缺少一些东西。

对我做错了什么有任何想法吗?

bing-maps leaflet angular

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