小编flo*_*ian的帖子

Angular 9 项目在生产环境中不起作用

我已经将我们的 Angular 混合项目从 8 迁移到 9。迁移进行得很顺利,ng build / ng serve 像以前一样运行良好。

真正的问题,我不知道如何开始工作,是在我构建了用于生产的应用程序之后(ng build --prod)。项目登陆页面完全空白,没有JS错误,没有控制台警告。看起来 AppModule 没有加载?我们唯一需要做的更改与 main.aot.ts 文件相关,我们删除了该文件,因为它不再适用于 IVY 编译器。

您过去可能拥有的任何相关经验都会对我有所帮助,非常感谢!

main.ts 看起来像这样

import {enableProdMode, StaticProvider} from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
import {downgradeModule} from "@angular/upgrade/static";

if (environment.production) {
  enableProdMode();
}
declare var angular: any;

const bootstrapFn = (extraProviders: StaticProvider[]) => {
  const platformRef = platformBrowserDynamic(extraProviders);
  return platformRef.bootstrapModule(AppModule);
};
const downgradedModule = downgradeModule(bootstrapFn);
angular.bootstrap(document.getElementById('app-root'), ['angularJSModule', downgradedModule], …
Run Code Online (Sandbox Code Playgroud)

angular angular9

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

Java:访问枚举中的常量(枚举)

阅读SCJP书,我在第1章"自测"中发现了类似的内容:

enum Animals {
    DOG("woof"), CAT("meow"), FISH("burble");
    String sound;
    Animals(String s) { sound = s; }
}

class TestEnum {      
    static Animals a; 
    public static void main(String[] args) {                                                                                     
        System.out.println(a.DOG.sound + " " + a.FISH.sound);   

        // the following line is from me
        System.out.println(Animals.DOG.sound + " " + Animals.FISH.sound);
    }
} 
Run Code Online (Sandbox Code Playgroud)

注意:代码编译正常.我不明白为什么我们可以从变量访问DOG,CAT或FISH常量a.我想(并且也写在书中)DOG,FISH,CAT作为常量以类似于public static final Animals DOG = new Animals(1); So 的方式实现,如果它们真的是静态的,为什么我们可以从中访问它们a?最后一行是我熟悉的方式.

java enums constants

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

我应该在每个UIViewController中监听可达性更新吗?

我看到很多Reachability示例,其中人们只在可达性状态发生变化时显示消息.
但最近,我在Foursquare应用程序中看到,每次用户尝试执行需要Internet连接的操作时,它们都会显示一条消息.
我认为这是一个更强大和更好的用户体验提醒用户他没有互联网不能做任何事情.主要是因为用户可以在应用程序之间切换,做其他事情并忘记他回来时没有联系.
一旦他们获得连接,我就可以看到他们从Internet获取数据并刷新UI.

我真正想要的是最好的方法.怎么做的?
他们是否有一个通用的UIViewController,每次需要连接时都会检查是否具有可达性?
或者,在每个取消请求并显示消息的Internet请求之前,他们是否有一种代理类?你们是如何处理的?

谢谢.

编辑:

我提出的解决方案是使用AFNetworking,它还在框中提供可达性状态.
基本上我创建了一个AFHTTPClient并在其上设置了一个可达性回调块来监听状态变化.AFHTTPClient对象是应用程序范围的(一种单例).(事实上​​,每个主机我有一个AFHTTPClient,我需要到达a.com,b.com ......).

然后,当我需要执行请求时,我创建了一个新的AFHTTPRequestOperation(在我的情况下是AFJSONRequestOperation),然后我将它排入AFHTTPClient对象.在操作的故障块中,我检查主机是否可以使用networkReachabilityStatusAFHTTPClient 的属性访问.如果无法访问,我会显示一条消息,表明用户没有互联网连接.

我把它包起来,所以每次创建操作时我都不必这样做.所以现在在应用程序中,每当用户尝试在没有连接时做某事时,他都会收到一条消息,记住他没有互联网访问权限.
我还使用可达性回调在我获得连接后重新加载屏幕上的数据(或者更确切地说,一旦我应该有连接).
我不知道这是不是最佳做法,但我认为很高兴知道应用程序会在新连接可用时立即重新加载重要数据.

如果有人对示例代码感兴趣,我可以提供它.

reachability ios

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

在Swift中使用multipart/form-data上传图像和参数

[警告]
当我看到这个问题越来越受到关注时,我想告诉您不要使用以下任何代码.
当我问到这个问题时,Swift还有不到一年的时间,速度很快,大部分图书馆都不是Swift友好且不稳定的.我强烈建议您尝试使用Alamofire或其他库来执行此类任务.但不要自己动手.
[/警告]

我想将图像上传到Drupal端点.

我遇到的问题是我收到带有text/html内容类型的HTTP 200 OK响应.在HTML响应中,有一条明确的信息表明节点已正确创建.但在服务器端,图像与节点无关.

另外,我不期望text/html,但是我在Accept标头中指定了application/json.

它已经在使用Android Rest Template的Android应用程序中运行.以下是供参考的代码:

String url = getUrl("node/{info_id}/attach_file");

HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);

if (user.isLoggedIn()) {
    headers.add(user.getSessionName(), user.getSessionId());
    headers.add("X-CSRF-Token", user.getToken());
    headers.add("Cookie", user.getSessionName() + "=" + user.getSessionId());
}

MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();

parts.add("files[field_mobileinfo_image]",
        new FileSystemResource(info.getImageUri()));
parts.add("field_name", "field_mobileinfo_image");

HttpEntity<MultiValueMap<String, Object>> request = new HttpEntity<>(parts, headers);
return getRestTemplate().exchange(url, HttpMethod.POST, request, Void.class, info.getId()).getBody();
Run Code Online (Sandbox Code Playgroud)

我知道我不检查Android(Void.class)中的响应,但一切正常,图像附加到服务器端的节点.

现在在Swift的iOS上我尝试了很多东西.

使用AFNetworking:

func upload(mobileInfo: MobileInfo) {
    let user = userService.load()
    let url = Config.buildUrl("")

    let …
Run Code Online (Sandbox Code Playgroud)

json multipartform-data ios swift

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

使用自定义表单键将POJO映射到application/x-www-form-urlencoded

我正在使用RoboSpice和Spring Android来执行REST api调用.需要将Content-Type设置为application/x-www-form-urlencoded发送数据.

假设我有一个像这样的Pojo类:

public class Pojo {
  private String pojoAttribute;

  // getter + setter
}
Run Code Online (Sandbox Code Playgroud)

这是我的请求类:

public class PojoRequest extends AbstractApiRequest<PojoResult> {

    private Pojo pojo;

    public PojoRequest(Pojo pojo) {
        super(PojoResult.class);
        this.pojo = pojo;
    }

    @Override
    public PojoResult loadDataFromNetwork() throws Exception {

        HttpEntity<Pojo> requestEntity = new HttpEntity<Pojo>(pojo, getDefaultHeaders());
        String url = buildUrlForPath("mypath");

        RestTemplate restTemplate = getRestTemplate();
        restTemplate.getMessageConverters().add(new FormHttpMessageConverter());

        return restTemplate.postForObject(url, requestEntity, PojoResult.class);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,假设我需要发送这个主体:
pojo_attribute = foo

现在我的代码不起作用,因为FormHttpMessageConverter不处理POJO.

我希望能做的是这样的:

public class Pojo {
  @FormProperty("pojo_attribute")
  private String pojoAttribute;

  // getter …
Run Code Online (Sandbox Code Playgroud)

java mapping robospice spring-android

6
推荐指数
0
解决办法
1369
查看次数

将值从 Spring 元注释传递到另一个注释

我的用例:
我将@PreAuthorize在表单中有很多注释@PreAuthorize("hasAuthority('RESPECT_MY_AUTHORITY')")
我想创建一个元注释@HasAuthority,它将权限作为值并将其传递给@PreAuthorize("hasAuthority(<value>)").

感觉好像不可能了。我最接近我想要的是@AliasFor注释之类的东西。但问题是我无法为我将获得的价值添加任何东西@HasAuthority。所以我每次都必须重复 hasAuthority 部分。

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasAuthority('RESPECT_MY_AUTHORITY')")
public @interface HasAuthority {

    @AliasFor(annotation = PreAuthorize.class, attribute = "value")
    String value();

}
Run Code Online (Sandbox Code Playgroud)

我想要类似的东西:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasAuthority(#value)")
public @interface HasAuthority {

    String value();

}
Run Code Online (Sandbox Code Playgroud)

知道我怎么能做到这一点,或者是否有可能?

spring-annotations

6
推荐指数
0
解决办法
141
查看次数

在 Nuxt 3 中获取计算出的标题

Nuxt 配置定义了默认值titletitleTemplate.
我想从 Nuxt 页面访问计算出的标题。

配置如下:

export default defineNuxtConfig({
  app: {
    head: {
      title: "Default title",
      titleTemplate: "%s - Company"
    }
  }
})
Run Code Online (Sandbox Code Playgroud)

在页面中,我想定义页面标题如下:

useHead({
  title: "Page title"
})
Run Code Online (Sandbox Code Playgroud)

就在从标题模板访问计算出的标题之后,在本例中它将是Page title - Company

我想用这个值来定义og:title元标记。

您知道如何实现此目标或使用插件可能的解决方法吗?

目标不是仅仅为了定义元标记而重复一些事情。

nuxtjs3

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

Java:删除JTabbedPane上的边距/填充

我想知道如何删除我的JTabbedPane的和我的JFrame的内容窗格之间,我的JTabbedPane中和其内部的JPanel之间的利润率.我在想要移除的边缘上空盘旋.绿线在这里显示jtabbedpane内的jpanel之间的差距.

我试着查看一些名为setMargin但在JTabbedPane上不存在的方法.我还检查了不同布局上的HgapVgap(两个= 0)(根内容窗格,我的jpanel等).

所以欢迎任何建议.谢谢.

图像就在这里.

我还不能发布图片.

java swing margins jtabbedpane

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

Android上如何区分指纹和人脸ID?

我没有看到任何与能够区分android.hardware.biometrics包内不同生物识别身份验证相关的内容。

我找到了FingerprintManagerCompat具有hasEnrolledFingerprints()方法的 ,但我想知道它是否是我们应该依赖android.hardware.biometrics包类的文档中所要走的路。

对此有何建议?我错过了什么?

android android-biometric-prompt

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

Cocoa Pods和Google Maps SDK

使用CocoaPods获取适用于iOS的Google Maps SDK时,我遇到了导入sdk头文件(#import <GoogleMaps/GoogleMaps.h>)的麻烦.
我是CocoaPods的新手,但我认为我使用的其他库(RestKit,AFNetworking ......)都能正常运行.对于这些API,我仍然需要像这样导入lib #import <AFNetworking/AFNetworking.h>而不是仅仅#import "AFNetworking".但它运作正常.
对于Google Maps SDK,我需要像这样导入它#import <Google-Maps-iOS-SDK/GoogleMaps/GoogleMaps.h>,这会导致编译错误,因为在GoogleMaps.h标头中,其他文件的导入方式如下:

#import <GoogleMaps/GMSCameraPosition.h>
#import <GoogleMaps/GMSCameraUpdate.h>
#import <GoogleMaps/GMSCircle.h>
...
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

cocoapods google-maps-sdk-ios

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