小编Jer*_*yow的帖子

typescript接口声明:indexable属性

javascript对象的一个​​常见用例是将它们用作键值存储...有点像字典:

var dictionary = {},
    value;
dictionary['key a'] = 99;
dictionary['key b'] = 12;
value = dictionary['key a'];  // 99
Run Code Online (Sandbox Code Playgroud)

可以通过声明这样的接口来添加typescript intellisense goodness:

interface IIndexable<T> {
    [s: string]: T;
}
Run Code Online (Sandbox Code Playgroud)

并使用这样的界面:

var dictionary: IIndexable<number> = {},
    value: number;
dictionary['key a'] = 99;
dictionary['key b'] = 'test';  // compiler error: "cannot convert string to number"
var x = dictionary['key a'];   // intellisense: "x" is treated like a number instead of "any".
Run Code Online (Sandbox Code Playgroud)

这是我的问题:是否可以声明此接口的独立版本:

interface StackOverflow {
    questions: IIndexable<number>;
}
Run Code Online (Sandbox Code Playgroud)

即不使用IIndexable

我尝试过这样的事情,但它没有编译: …

typescript

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

Aurelia中HTML组件和普通组件之间的区别?

我从Aurelia开发的标准TypeScript骨架开始.

我想在"nav-bar"组件中添加一些代码,因此我决定将其从简单的HTML组件转换为常规组件.为此,我修改了app.html中的require标记:

<require from="nav-bar.html"></require> 
Run Code Online (Sandbox Code Playgroud)

<require from="nav-bar"></require> 
Run Code Online (Sandbox Code Playgroud)

接下来,我创建了一个nav-bar.ts文件,其中包含以下代码:

import {autoinject} from 'aurelia-framework';
import {customElement, bindable} from 'aurelia-framework';
// import {HttpClient} from 'aurelia-fetch-client';

@autoinject
@customElement('nav-bar')
export class NavBarClass {
    public attached() {
        console.log("TEST");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我完全按照原样离开了nav-bar.html.现在程序运行并且控制台包含来自实例化的NavBarClass的TEST值,但是当导航栏仅为HTML时,以前显示的菜单现在已经丢失.

如何获取菜单?我究竟做错了什么?常规组件与仅HTML组件有何不同?

谢谢你的帮助,-Greg

javascript aurelia

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

webpack + octicons:如何处理/忽略package.json中的“ main”:“ readme.md”

main当无效/不必要时,如何告诉webpack忽略package.json 的属性?

这是一个示例:GitHub的octicons包具有main的readme.md:

{
  "name": "octicons",
  "version": "3.5.0",
  "description": "GitHub's icon font",
  "main": "README.md",  <-------------------------------------
  "repository": {
    "type": "git",
    "url": "https://github.com/github/octicons.git"
  },
  ...
}
Run Code Online (Sandbox Code Playgroud)

https://github.com/github/octicons/blob/master/package.json#L5

导致此错误:

ERROR in ./~/octicons/README.md
Module parse failed: C:\repos\foo\node_modules\octicons\README.md Unexpected character '#' (1:0)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected character '#' (1:0)
    at Parser.pp.raise (C:\repos\foo\node_modules\acorn\dist\acorn.js:920:13)
    at Parser.pp.getTokenFromCode (C:\repos\foo\node_modules\acorn\dist\acorn.js:2813:8)
    at Parser.pp.readToken (C:\repos\foo\node_modules\acorn\dist\acorn.js:2508:15)
    at Parser.pp.nextToken (C:\repos\foo\node_modules\acorn\dist\acorn.js:2500:71)
    at Parser.parse (C:\repos\foo\node_modules\acorn\dist\acorn.js:1615:10)
    at Object.parse (C:\repos\foo\node_modules\acorn\dist\acorn.js:882:44)
    at Parser.parse (C:\repos\foo\node_modules\webpack\lib\Parser.js:902:15)
    at DependenciesBlock.<anonymous> (C:\repos\foo\node_modules\webpack\lib\NormalModule.js:104:16)
    at DependenciesBlock.onModuleBuild …
Run Code Online (Sandbox Code Playgroud)

webpack octicons

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

绑定到Aurelia中的任意或非标准属性

为了使用库,我需要能够绑定到UL元素的"for"属性.

这不起作用:

<ul for="${id}"> ... </ul>
Run Code Online (Sandbox Code Playgroud)

基于测试我假设这是因为ul元素通常没有for属性.我该如何解决这个问题?这在Durandal/knockout中是微不足道的,我相信它是这样的:

data-bind="attr: { for: $data.id }"

我真的必须创建自定义属性吗?这会与用于的内置属性冲突label吗?还有其他明显的解决方法吗

javascript aurelia aurelia-binding

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

如何使用从属性属性中提取的元数据添加extend breeze实体类型

我想在breeze dataService(客户端)中获取下面提到的自定义属性.

namespace Tam.Framework.Web.Models
{
    [ViewAttribute("app/views/Employee.html")]//this custom class attribute
    public class Employee : BaseEntity
    {
        protected override string OnGetDescriptor()
        {
            return "some description";
        }

        public string FirstName { get; set; }

        [Display(Name = "LAST NAME")]//this custom property attribute
        public string LastName { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

attributes entity-framework breeze

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

在Aurelia应用程序中使用Google的reCAPTCHA

我一直在谷歌搜索,但似乎找不到在Aurelia应用程序中使用reCAPTCHA的方法。

如果可能,我想将其用作自定义元素。

import {inject, customElement} from 'aurelia-framework';

//maybe from url like https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit
import recaptcha from 'google-recaptcha';

@customElement('captcha')
@inject(recaptcha)
export class Captcha{

  constructor(recaptcha){
    this.recaptcha = recaptcha;
  }

  //add code to initialize captcha and handle callback
}
Run Code Online (Sandbox Code Playgroud)

javascript recaptcha aurelia

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