小编Avi*_* P.的帖子

Angular HTML绑定

我正在写一个Angular应用程序,{{myVal}}我想要显示一个响应.

我怎么做?如果我只是使用绑定语法,innerHTML它会编码所有div字符(当然).

我需要以某种方式将a的内部html绑定{{myVal}}到变量值.

angular2-template angular2-databinding angular

756
推荐指数
11
解决办法
46万
查看次数

JavaFX与WPF相比如何?

我大部分时间都是C#程序员,大约10年前我就停止编写Java了,但是我试着通过阅读文章,与朋友交谈等方式来跟上Java的技术.

我听说过一个名为JavaFX的新的丰富的GUI框架,但找不到任何资源与非Java的相似之处.

由于我对C#和WPF非常熟悉,所以我想了解两种技术的相似或不同之处.

编辑:看到没有答案,我会尝试更具体:

  1. WPF使用XAML创建可视树,JavaFX有类似的东西吗?
  2. WPF最适合与MVVM模式中的视图模型绑定,JavaFX是否也广泛使用绑定?
  3. WPF利用GPU进行渲染,JavaFX是否也这样做?
  4. 当通过网络上的浏览器运行时,Silverlight与JavaFX相比如何?

......更多......

我正在将此更改为社区维基,以便比较可以不断更新(希望如此).

wpf javafx javafx-2

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

如何将焦点设置为另一个输入?

我需要能够在发生某些事件时将焦点切换到输入元素.我如何在Angular 2中做到这一点?

例如:

<input (keyUp)="processKeyUp($event)"/>
<input (focusme)="alert('i am focused')"/>
Run Code Online (Sandbox Code Playgroud)

我希望在第一个按下某个键时聚焦第二个输入框.我想我需要使用自定义事件(focusme在代码片段中),但我不知道在何处或如何声明它,以及是否为其使用@Directive注释,或以某种方式将其定义包含在组件中.总之,我很难过.

UPDATE

忘了提,我知道我可以通过在html中使用局部变量来做到这一点,但我希望能够从组件中做到这一点,并且我希望能够在触发focusme事件时执行复杂的逻辑,以便控件可以监听它可以确定它是否适合他们.谢谢!

typescript angular

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

工作流设计困境 - 状态机,是或否

我是WF的初学者,但我读了一本书并做了很多谷歌搜索.我想写一个库存管理服务.库存由具有以下状态的单个项目组成:

  1. 备用
  2. 安装
  3. 在维修

物品可能在每个州花费数月,并且有数千种物品.

问题是,我是否为所有不同的状态创建状态机工作流程?或者我是否创建了在州之间转换的工作流程?

如果我理解正确,如果我创建单个状态机工作流程,那么将始终为每个项目运行工作流程.这意味着数千个不断运行的工作流程.此外,我需要能够显示每个项目状态的快照,这意味着我必须以某种方式查询它们当前所处状态的所有工作流程,或者在每次状态转换后以其他方式持久保存到数据库.

然而,状态机工作流在逻辑上听起来是正确的事情,因此我的困境.

如果可以,请你帮助我 :-)

谢谢!

更新:

假设我有比上面3更多的状态,并且不是所有状态转换都是可能的.

赏金获奖者:莫里斯 - 感谢所有其他人真正帮助我更多地了解工作流程,MS工作流程基础以及其他更轻量级的替代方案.不幸的是,只有一个赏金赢家,莫里斯的回答及其评论对我帮助最大.

.net c# workflow workflow-foundation

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

Angular2组件未呈现

我有AngularJS的经验,并开始学习Angular2.我正处于学习之旅的最初阶段,但我已经陷入困境.

我可以让我的一个组件渲染,但不能另一个.我正在使用Visual Studio 2013 Ultimate和TypeScript 1.5 beta.这是来源:

的index.html

<html>
    <head>
        <title>Angular 2 Quickstart</title>
        <script src="https://github.jspm.io/jmcriffey/bower-traceur-runtime@0.0.87/traceur-runtime.js"></script>
        <script src="https://jspm.io/system.js"></script>
        <script src="https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js"></script>
    </head>
    <body>

        <!-- The app component created in app.ts -->
        <my-app></my-app>
        <display></display>
        <script>
            System.import('app');
            System.import('displ');
        </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

app.ts

/// <reference path="d:/npm/typings/angular2/angular2.d.ts" />

import { Component, View, bootstrap} from 'angular2/angular2';

// Annotation section
@Component({
    selector: 'my-app',
})

@View({
    template: '<h1>Hello {{ name }}</h1>',
})

// Component controller
export class MyAppComponent {
    name: string;

    constructor() {
        this.name = 'Alice';
    }
}

bootstrap(MyAppComponent); …
Run Code Online (Sandbox Code Playgroud)

typescript angular

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

具有OR子句的lambda表达式的LINQ where子句和返回不完整结果的空值

问题简而言之

我们有一个在Where子句中使用的lambda表达式,它不会返回"预期"结果.

快速摘要

在analyzeObjectRepository对象中,某些对象也包含名为Parent的属性中的父关系.我们正在查询此analyzeObjectRepository以返回一些对象.

详情

下面的代码应该做的是,返回包含ID值的特定对象的根,第一个子节点(直接子节点)和孙子节点.

在下面的代码中,常识表示所有使3个单独的OR条件中的任何一个成为真的结果应该在结果中返回.

List<AnalysisObject> analysisObjects = 
    analysisObjectRepository
        .FindAll()
        .Where(x => x.ID               == packageId ||
                    x.Parent.ID        == packageId || 
                    x.Parent.Parent.ID == packageId)
        .ToList();
Run Code Online (Sandbox Code Playgroud)

但上面的代码只返回子孙,而不返回根对象(使用null父值)

x.ID == packageId
Run Code Online (Sandbox Code Playgroud)

条件是真的.

只有制作第二个的对象

x.Parent.ID == packageId
Run Code Online (Sandbox Code Playgroud)

第三

x.Parent.Parent.ID == packageId
Run Code Online (Sandbox Code Playgroud)

条款被退回.

如果我们只编写代码以使用下面的代码返回根对象,则返回它,因此我们完全确定analyzeObjectRepository包含所有对象

List<AnalysisObject> analysisObjects = 
    analysisObjectRepository
        .FindAll()
        .Where(x => x.ID == packageId )
        .ToList();
Run Code Online (Sandbox Code Playgroud)

但是,当我们将其重写为委托时,我们得到预期的结果,返回所有预期的对象.

List<AnalysisObject> analysisObjects = 
    analysisObjectRepository
        .FindAll()
        .Where(delegate(AnalysisObject x) 
        { 
            return 
              (x.ID == packageId) || 
              (x.Parent != null && x.Parent.ID == packageId) || 
                  (x.Parent != null && 
                   x.Parent.Parent …
Run Code Online (Sandbox Code Playgroud)

c# lambda delegates expression

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

数据路径“”应具有必需的属性“lintFilePatterns”

我的 Angular 10 项目在运行 ng lint 时失败 node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng lint

它失败并返回代码 1 并显示:

Schema validation failed with the following errors:
  Data path "" should have required property 'lintFilePatterns'.
Run Code Online (Sandbox Code Playgroud)

它仍然对文件进行 lint 检查,并将警告和错误打印到控制台。但我想在某个时候将其集成到我们的 CI 中。

下面是我的 angular.json lint 配置以及我的 eslint 配置

"lint": {
      "builder": "@angular-eslint/builder:lint",
      "options": {
        "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
      },
      "configurations": {
        "dev": {
          "builder": "@angular-eslint/builder:lint",
          "lintFilePatterns": ["src/**/*.ts", "src/**/*.html"]
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)

和 eslintrc.js

module.exports = {
"root": true,
"overrides": [
  {
    "files": ["*.ts"],
    "parserOptions": {
        "project": [
          "src/tsconfig.app.json",
          "src/tsconfig.spec.json", …
Run Code Online (Sandbox Code Playgroud)

lint eslint angular

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

Angular 2拖放指令极其缓慢

我正在尝试实现自定义拖放指令.它有效,但它非常慢,我认为可以跟踪Angular 2的缓慢,因为我以前从未遇到过这种缓慢.缓慢,只有当我附上一个事件侦听器发生dragoverdrag事件(即被频繁发送的事件),即使我什么都不做,只是返回false在其中.

这是我的指令代码:

import {Directive, ElementRef, Inject, Injectable} from 'angular2/core';

declare var jQuery: any;
declare var document: any;

@Directive({
    selector: '.my-log',
    host: {
        '(dragstart)': 'onDragStart($event)',
        '(dragover)': 'onDragOver($event)',
        '(dragleave)': 'onDragLeave($event)',
        '(dragenter)': 'onDragEnter($event)',
        '(drop)': 'onDrop($event)',
    }
})
@Injectable()
export class DraggableDirective {
    refcount = 0;
    jel;

    constructor( @Inject(ElementRef) private el: ElementRef) {
        el.nativeElement.setAttribute('draggable', 'true');
        this.jel = jQuery(el.nativeElement);
    }

    onDragStart(ev) {
        ev.dataTransfer.setData('Text', ev.target.id);
    }

    onDragOver(ev) {
        return false;
    }

    onDragEnter(ev) {
        if (this.refcount === 0) {
            this.jel.addClass('my-dragging-over'); …
Run Code Online (Sandbox Code Playgroud)

drag-and-drop angular2-directives angular

8
推荐指数
3
解决办法
7006
查看次数

如何使用编译模板创建AngularJS工具提示指令?

我长时间搜索互联网并没有找到答案.我的问题很简单,我希望在我的标记中有这样的东西:

<div my-tooltip-template="'mytt.tpl.html'" my-tooltip-scope="myDataItem">Some text...</div>
Run Code Online (Sandbox Code Playgroud)

编辑:myDataItem范围变量在哪里包含我的数据对象,并且模板可能如下所示:

<h1>{{dataItem.title}}</h1>
<span>{{dataItem.description}}</span>
Run Code Online (Sandbox Code Playgroud)

我希望使用包含myDataItemas dataItem并显示为工具提示的范围编译该模板.通过试验ui-bootstrap tooltip模块可以告诉我,将html注入工具提示的方法是使用指令,tooltip-html-unsafe但注入的html不会被编译,即不评估角度表达式,不扩展指令等.

我该如何为此创建指令?我想要一个精益求精的结果,我不想要包含jQuery或任何其他库,只需要AngularJS和ui-bootstrap.

非常感谢!

tooltip angularjs angularjs-directive

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

Angular SPA 中的 OpenID Connect 与 Asp.Net Core 3.1 后端

我想用(Asp.Net Core)后端构建一个(Angular)SPA,我想使用安全最佳实践。我的计划是这样的:

  1. SPA 显示登录按钮
  2. 单击“登录”按钮会启动与某些身份提供商(Google、Microsoft 等)的授权代码openid-connect流程
  3. 用户向身份提供者进行身份验证,然后使用授权码重定向回 SPA
  4. SPA然后向后端发出登录请求并传递授权码
  5. 后端向身份提供者发出请求,交换id_token的代码,并为用户创建某种会话票证

现在这是我因缺乏正确理解而陷入困境的地方

问题 1 - 最佳实践

上述程序甚至被认为是最佳实践吗?还是我做错了?

问题 2 - 身份验证票证

我的后端只是 API,它不为用户呈现 HTML 页面,只提供 Json 响应。我应该创建什么样的身份验证票?它应该是 JWT 还是 Cookie?我认为它不能是 cookie,因为 API 无法返回浏览器将正确存储的 cookie。所以它必须是某种令牌,最好是 JWT。SPA 应该如何存储它,本地/会话存储?

问题 3 - 过期和刷新

假设后端返回一个 JWT 给 SPA,这个 JWT 应该包含什么?它的到期时间应该是多少?我应该如何处理自动刷新?

问题 4 - 所需的包和库

此外,特定于编程(因为这毕竟是一个编程问题),用于所有这些所需的库是什么。问题既针对 SPA,也针对后端。我假设我需要某种用于 SPA的openid-connect客户端,并且我需要后端的一些库来完成授权代码流(交换id_token的代码),这是由IdentityServer4? 或者有没有其他图书馆。

更新

我准备了一个解决方案,力求展示做所有事情的正确方法。这是一项正在进行的工作,凌乱且不干净,但它是最小的,它有效并且努力遵循最佳实践。

https://github.com/paviad/dotnet-angular-fullstack

openid-connect asp.net-core identityserver4 angular

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