小编Bhe*_*zie的帖子

Angular 2 Jasmine无法绑定到'routerLink',因为它不是'a'的已知属性

我正在为我的Navbar组件创建一个单元测试,我收到一个错误:

无法绑定到'routerLink',因为它不是'a'的已知属性

Navbar组件TS

import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { NavActiveService } from '../../../services/navactive.service';
import { GlobalEventsManager } from '../../../services/GlobalEventsManager';

@Component({
  moduleId: module.id,
  selector: 'my-navbar',
  templateUrl: 'navbar.component.html',
  styleUrls:['navbar.component.css'],
  providers: [NavActiveService]
})
export class NavComponent {
  showNavBar: boolean = true;

  constructor(private router: Router,
              private navactiveservice:NavActiveService,
              private globalEventsManager: GlobalEventsManager){

    this.globalEventsManager.showNavBar.subscribe((mode:boolean)=>{
      this.showNavBar = mode;
    });

  }

}
Run Code Online (Sandbox Code Playgroud)

导航组件规格

import { ComponentFixture, TestBed, async } from '@angular/core/testing';    
import { NavComponent } from './navbar.component';
import { DebugElement } …
Run Code Online (Sandbox Code Playgroud)

unit-testing jasmine angular-routing angular

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

BAT文件映射到网络驱动器而不以管理员身份运行

我正在尝试创建一个.bat文件,该文件将在单击时映射到网络驱动器(如果连接到网络,如果它可以在登录时自动连接,则会更好,否则不要连接)

到目前为止我所拥有的是:

net use P: "\\server\foldername\foldername"
Run Code Online (Sandbox Code Playgroud)

有没有办法可以创建这个,这样用户就不必右键单击并以管理员身份运行?我想它,如果他们只需单击.bat文件,它将映射它们.

windows batch-file drive

12
推荐指数
2
解决办法
19万
查看次数

Angular 2下载带有身份验证的.CSV文件点击事件

我正在使用spring boot后端,而我的api使用服务通过OutputStreamWriter发送数据.我可以使用像这样的点击事件在Angular 2中下载它:

打字稿

results(){
window.location.href='myapicall';
}
Run Code Online (Sandbox Code Playgroud)

HTML

<button (click)="results()"
                    class="btn btn-primary">Export</button>
Run Code Online (Sandbox Code Playgroud)

这很好用; 但是,我最近为我的api端点实现了安全性,现在每次尝试拨打电话时都会收到401,因为它没有发送标头.

我写了一个服务,我可以在控制台中看到结果,但我似乎无法弄清楚如何下载文件.

DownloadFileService

import {Injectable} from '@angular/core';
import { Http, Headers } from '@angular/http';
import 'rxjs/Rx';

@Injectable()
export class DownloadFileService {

    headers:Headers;
    bearer: string;
    constructor(public http: Http) {}



    getFile(url:string) {
        this.bearer = 'Bearer '+ localStorage.getItem('currentUser');
        this.headers = new Headers();
        this.headers.append('Authorization', this.bearer);

        return this.http.get(url, {headers: this.headers});
    }



}
Run Code Online (Sandbox Code Playgroud)

我尝试通过blob下载数据,如本文所述: 如何使用Angular2下载文件

下载的文件类型为File,内容为:

响应状态:200确定URL:我的网址

它实际上并没有下载数据.

downloadFile(data: any){
        var blob = new Blob([data], { type: 'text/csv' });
        var url= window.URL.createObjectURL(blob);
        window.open(url); …
Run Code Online (Sandbox Code Playgroud)

javascript download fileapi typescript angular

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

Spring Boot JPA Query for not null

我正在使用spring boot JPA,我想只返回status id不为null的值.查询此问题的最佳方法是什么?

@ManyToOne
@JoinColumn(name = "entity_status_id")
private entityStatusLookup entityStatusLookup;
Run Code Online (Sandbox Code Playgroud)

EntityController

public interface EntityRepository extends CrudRepository<Batch, String> {   

    public Page<Entity> findByUploadUserOrderByUploadDateDesc(String userId, Pageable page);

    public Entity findByEntityId(String entityId);

}
Run Code Online (Sandbox Code Playgroud)

API

@RequestMapping(value="/entity/user", method=RequestMethod.GET)
public HttpEntity<PagedResources<Entity>> getEntityByUser(Pageable page, PagedResourcesAssembler assembler) {
    String user = SecurityContextHolder.getContext().getAuthentication().getName();
    Page<Enity> entityItems = entityRepository.findByUploadUserOrderByUploadDateDesc(user, page);

    return new ResponseEntity<>(assembler.toResource(entityItems), HttpStatus.OK);
}
Run Code Online (Sandbox Code Playgroud)

我意识到我可以遍历返回的页面并查找要删除的空值,但我宁愿让查询返回非空值.我不确定在实体状态ID上查询非null的最佳方法是什么.

sql spring spring-data-jpa spring-boot

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

使用router.navigate时,更改导航栏中的"活动"选项卡

我正在使用带有Bootstrap 4的Angular 2.我可以使用以下代码更改活动选项卡:

navbar.component.html

<nav class="navbar navbar-fixed-top navbar-light bg-faded">
  <button class="navbar-toggler hidden-sm-up" type="button" data-toggle="collapse" data-target="#navbar">
    &#9776;
  </button>
  <div class="collapse navbar-toggleable-xs" id="navbar">
  <div class="container">
    <a class="navbar-brand" [routerLink]="['']">My App</a>
    <ul class="nav navbar-nav navbar-right">
      <li class="nav-item" routerLinkActive="active" [routerLinkActiveOptions]="{exact:
true}">
        <a class="nav-link" [routerLink]="['']">Home<span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
        <a class="nav-link" [routerLink]="['/about']">About</a>
      </li>
      <li class="nav-item" [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}">
        <a class="nav-link" [routerLink]="['/example']">Example</a>
      </li>      
    </ul>
  </div>
  </div>
</nav>
Run Code Online (Sandbox Code Playgroud)

这条线:

[routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}"
Run Code Online (Sandbox Code Playgroud)

适用于更改为当前活动的选项卡,但是当我使用以下内容导航到组件时:

this.router.navigate(['']);
Run Code Online (Sandbox Code Playgroud)

活动选项卡不会更改.有没有办法在上面导航时更改活动标签?

html css bootstrap-4 angular

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

Angular 2 Jasmine如何测试组件的功能

如何在Angular 2中模拟函数的click事件?对于我的Home组件,我有:

家庭组件

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

@Component({
  moduleId: module.id,
  templateUrl: 'home.component.html',
  styleUrls: ['home.component.css'],
  selector: 'home',
})
export class HomeComponent {

    constructor(private router: Router) {

    }

    redirectToUpload() {
        this.router.navigate(['/upload']);
    }
    redirectToAbout() {
        this.router.navigate(['/about']);
    }

}
Run Code Online (Sandbox Code Playgroud)

主页组件规格

import { ComponentFixture, TestBed, async } from '@angular/core/testing';
import { HomeComponent } from './home.component';
import { DebugElement } from '@angular/core';
import { By } from '@angular/platform-browser';
import { Router } from '@angular/router';
import { HomeModule } …
Run Code Online (Sandbox Code Playgroud)

jasmine karma-jasmine angular2-routing angular

6
推荐指数
2
解决办法
9680
查看次数

Angular2 FileSaver.js

我正在使用带有角度2的FileSaver.js并且它工作得非常好; 但是,我的构建中出现语义错误:

错误TS2304:找不到名称'saveAs'

我正在使用angular 2 seed并将库添加到我的project.config中,如下所示:

this.NPM_DEPENDENCIES = [
      ...this.NPM_DEPENDENCIES,
{src: 'file-saver/FileSaver.min.js', inject: true},

    ];


this.SYSTEM_CONFIG_DEV.paths['file-saver'] =
        `${this.APP_BASE}node_modules/file-saver/FileSaver`;

    this.SYSTEM_BUILDER_CONFIG.packages['file-saver'] = {
      main: 'FileSaver.js',
      defaultExtension : 'js'
    };
Run Code Online (Sandbox Code Playgroud)

我可以在我的组件中使用saveAs:

downloadFile(data: any){

        var blob = new Blob([data], { type: 'text/csv' });

        //saveAs is a function in the FileSaver.js library https://github.com/eligrey/FileSaver.js
        saveAs(blob, "results.csv");
    }
Run Code Online (Sandbox Code Playgroud)

问题是语义错误导致我的构建在推送到我的云环境时失败.

我尝试通过以下方式添加输入:

npm i @types/file-saver
Run Code Online (Sandbox Code Playgroud)

这允许我导入:

import { saveAs } from 'file-saver';
Run Code Online (Sandbox Code Playgroud)

但是,这给了我错误:

h.saveAs不是一个函数

javascript download typescript filesaver.js angular

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

将Combobox百分比转换为双变量

我正在使用VB.Net使用visual studio 2012创建一个摊销计算器.我有一个包含百分比列表的组合框:

Dim dblInterest As Double

    Dim InterestRateInput

    For InterestRateInput = 20 To 2000 Step 1
        dblInterest = Math.Round(InterestRateInput / 10000, 4)

        cboInterestRateInput.Items.Add(FormatPercent(dblInterest))
Run Code Online (Sandbox Code Playgroud)

由于我将值格式化为百分比,因此我无法将其转换为double,因为它中包含"%"符号.在用户选择所需的百分比后,如何将百分比转换为双倍?我试图执行这行代码但没有成功:

dblAnnualRate = CDbl(cboInterestRateInput.Items(cboInterestRateInput.SelectedIndex))
Run Code Online (Sandbox Code Playgroud)

编辑:为了解决这个问题,我做了dblAnnualRate = CDbl(cboInterestRateInput.Items(cboInterestRateInput.SelectedIndex).ToString.Rep lace("%",""))添加了另一个我设置的变量,等于dblAnnualRate/100

vb.net windows vba visual-studio-2010 visual-studio-2012

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

部分内容未显示在视图中

我正在做 ruby​​ 教程,目前在清单 5.9 上。部分内容没有显示在我的app/views/layouts目录中

这是代码,我在 OSX 10.8 上使用 Rails 1.8.7。我正在使用rvm并通过brew install安装:

    <!DOCTYPE html>
<html>
  <head>
    <title><%= full_title(yield(:title)) %></title>
    <%= stylesheet_link_tag "application", media: "all",
                                           "data-turbolinks-track" => true %>
    <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
    <%= csrf_meta_tags %>
    <%= render :partial =>'layouts/shim' %>
  </head>
  <body>
    <%= render :partial => 'layouts/header' %>
    <div class="container">
      <%= yield %>
    </div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

到目前为止,我完全按照教程进行操作,每隔一段时间我就需要进行调整以使用 1.8.7 而不是 1.9。教程说要做

<%= render'layouts/header' %>
Run Code Online (Sandbox Code Playgroud)

那不起作用,所以我尝试了

<%= render :partial => 'layouts/header' %>
Run Code Online (Sandbox Code Playgroud)

并且部分仍然没有出现。

ruby ruby-on-rails render partials

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

使用复合键的 DataLoader

我了解 dataLoader 如何使用简单的键工作:

import DataLoader from 'dataloader';
import myService from './services/service';

export default () => new DataLoader((keys: any) => Promise.all(keys.map((key: string) => myService(key))));
Run Code Online (Sandbox Code Playgroud)

有使用复合键的好模式吗?

如果我需要使用纬度和经度之类的东西调用谷歌地图 api 怎么办?我的密钥需要是纬度和经度的独特组合,并且在调用我的服务时我需要拆分纬度和经度

const key = `${latitude}|${longitude}`;
Run Code Online (Sandbox Code Playgroud)

认为我可以使用映射来查找要根据键传递给我的服务的值,对于这样的用例是否有一个好的模式?

javascript typescript graphql dataloader

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

设置默认选择列表值Angular2

我想将角度2中的选择的默认选项设置为"选择一个选项".这是我到目前为止的代码:

HTML

<div class="form-group">
                        <label class="col-md-4 control-label" for="CustomFix">Select an option:</label>
                        <div class="col-md-4">
                            <select id="example" name="example" class="form-control" [(ngModel)]="exampleArray" (ngModelChange)="changes()">
                                <option disabled selected>Select a Custom Fix</option>
                                <option *ngFor="let example of exampleArray" [ngValue]="example">{{example.attribute }}</option>
                            </select>
                        </div>
                    </div>
Run Code Online (Sandbox Code Playgroud)

打字稿

changes(){
console.log(this.example.option);
}
Run Code Online (Sandbox Code Playgroud)

我的html中有一行:

<option disabled selected>Select a Custom Fix</option>
Run Code Online (Sandbox Code Playgroud)

如何启用此选项作为默认选项?它与我用于ngModel的数组分开

html5 select angular2-ngmodel angular

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

Bootstrap 4样式选择

我正在使用带有Angular 2的bootstrap 4并具有以下选择:

<div class="form-group">
    <label class="col-md-4 control-label" for="OptionExample">Select an option:</label>
    <div class="col-md-4">
        <select id="optionExample" name="optionExample" class="form-control" [(ngModel)]="ngmodeloptionExample"
                (ngModelChange)="optionExamples()">
            <option disabled [ngValue]="-1">Select an Option</option>
            <option *ngFor="let option of options" [ngValue]="option">{{option.property }}</option>
        </select>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我有可能设计这个样式吗?我尝试添加一些bootstrap类,但没有运气.我愿意使用Typescript或javascript,但是使用像这样的库有困难:https://silviomoreto.github.io/bootstrap-select/examples/

html css select bootstrap-4 angular

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

水平布局中的嵌套垂直布局

我正在创建一个Android应用程序,我想创建一个布局,它有两个并排的按钮和下面的三个按钮.我可以在这里找到我想要做的一个例子:

http://mycolorscreen.com/2014/11/29/flatdrop-zw-skin/

我正在努力让两个按钮在水平线性布局中并排,并且还有三个垂直线性布局的按钮.由于第一个线性布局是水平的,因此我的按钮也会变为水平.我的代码如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:weightSum="1">

<TextView
        android:layout_width="164dp"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView2"
        android:layout_gravity="left"
        android:layout_weight="0.1" />

    <TextView
        android:layout_width="174dp"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/textView"
        android:layout_gravity="right"
        android:layout_weight="0.1" />

<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    style="@style/AppTheme"
    android:longClickable="false"
    android:weightSum="1">



    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/btnFitnessGoalsDefaultString"
        android:textColor="#FFFFFF"
        android:id="@+id/btnFitnessGoals"
        android:background="@drawable/buttondefault"
        android:layout_marginBottom="10dp"
        android:layout_weight="0.10"
        android:layout_gravity="top" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:text="@string/btnNutritionGoalsDefaultString"
        android:textColor="#FFFFFF"
        android:id="@+id/btnNutritionGoals"
        android:background="@drawable/buttondefault"
        android:layout_weight="0.10" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/btnBonusEventsDefaultString"
        android:textColor="#FFFFFF"
        android:id="@+id/btnBonusEvents"
        android:background="@drawable/buttondefault"
        android:layout_weight="0.10" />
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

xml android android-layout android-fragments android-studio

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