小编fik*_*tra的帖子

为什么我的组件绑定在其控制器中未定义?

我正在写一个简单的角度组件.我将参数作为绑定传递并在屏幕上显示其值.一切正常:我可以看到屏幕上显示的参数.

零件:

var app = angular.module("test", []);
app.component("test", {
  bindings: {
    "contactId": "<"
  },
  controllerAs: "model",
  controller: () => {
    //output: 'contact id from controller: undefined'
    console.log(`contact id from controller: ${this.contactId}`);
  },
  template: "<div>Contact id from view: {{model.contactId}}</div>"
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<test contact-id="8"></test>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试从控制器中访问绑定时(请参阅console.log),绑定值为undefined.我不明白它在视图中是如何可用的,而不是在控制器中.

我究竟做错了什么?

这是一个解释问题的方法.

javascript angularjs angularjs-1.5

60
推荐指数
5
解决办法
4万
查看次数

在使用像SystemJS这样的模块加载器时,在Safari的Web Inspector中进行调试

我正在创建一个Ionic应用程序es6 modules,TypeScriptSystemJS作为模块加载器.这是我的设置:

tsconfig.json:

{
  "compilerOptions": {
    ...
    "target": "es5",
    "module": "system",
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

index.html的:

<script src="lib/system.js"></script>
<script src="systemjs.config.js"></script>
<script>System.import('js/app.js')</script>
Run Code Online (Sandbox Code Playgroud)

示例脚本(TypeScript):

import {IConfig} from "./app-config";

export class ConfigLoader {
    ...
}
Run Code Online (Sandbox Code Playgroud)

Chrome中的一切都很棒.但是,在使用Safari的Web Inspector进行调试时,我无法在脚本中放置任何断点,因为Web Inspector仅显示直接从HTML加载的脚本(通过脚本标记),而不是XHR加载的脚本(在我的情况下,由SystemJS加载) .这意味着我无法调试自己的脚本,这当然是不可接受的.

我尝试像以前一样使用SystemJS解决这个问题,但也将脚本标记放在html中,如下所示:

<script src="lib/system.js"></script>
<script src="systemjs.config.js"></script>
<script src="js/app-config.js"></script>
 ... other app scripts
<script>System.import('js/app.js')</script>
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用,因为SystemJS对此并不满意:

无效的System.register调用.匿名System.register调用只能由SystemJS.import加载的模块进行,而不能通过脚本标记进行.

如何使用SystemJS并同时具备在Safari中调试的能力?我正在寻找比在每个脚本中放置调试器语句更复杂的解决方案......

javascript safari web-inspector ecmascript-6 systemjs

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

Swagger UI:传递自定义授权标头

我在ASP.NET Web API上使用Swashbuckle和Swagger.我正在尝试通过Swagger UI找到一种传递包含Bearer令牌的Authorization标头的方法.我一直在寻找,但所有答案似乎都指向了这个链接.

但是,这假定标题的内容是预先知道的.我真的需要一种方法来改变Swagger UI中的标题(在点击'试一试!'按钮之前),因为Bearer令牌每小时都会到期.类似于Postman允许您添加标题的方式.

这似乎是一个如此荒谬的简单问题,但答案是什么?

asp.net-web-api swagger swagger-ui swashbuckle

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

Chrome不会根据孩子的内容展开flex父级

我需要在彼此旁边显示几个方框.每个框都有可变数量的子项.父母应根据子项目占用的空间进行扩展.物品的宽度固定很重要.我正在使用flexbox进行布局.它应该如下所示:

在此输入图像描述

我写了一篇Plunkr来说明.

问题:当孩子占用更多空间时,Chrome不会扩展父级.子项目显示在父母的边界之外并出现在邻近的父级中,导致这种混乱:

在此输入图像描述

具有讽刺意味的是,如果你在IE 11或Edge中打开Plunkr,它运行正常.

我究竟做错了什么?

这是一段代码片段:

body {
  display: flex;
  overflow: scroll;
}

.parent {
  border: 1px solid grey;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
}

.items {
  display: flex;
}

.items span {
  flex-basis: 25px;
  flex-shrink: 0;
}
Run Code Online (Sandbox Code Playgroud)
<div class="parent">
  <h4>Parent 1</h4>
  <div class="items">
    <span>i1</span>
    <span>i2</span>
    <span>i3</span>
    <span>i4</span>
    <span>i5</span>
  </div>
</div>
<div class="parent">
  <h4>Parent 2</h4>
  <div class="items">
    <span>i1</span>
    <span>i2</span>
    <span>i3</span>
    <span>i4</span>
    <span>i5</span>
  </div>
</div>
<div class="parent">
  <h4>Parent 3</h4>
  <div class="items">
    <span>i1</span>
    <span>i2</span>
    <span>i3</span>
    <span>i4</span>
    <span>i5</span> …
Run Code Online (Sandbox Code Playgroud)

html css google-chrome css3 flexbox

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

角度(2/4):选择文字会触发点击事件

如果元素具有(click)处理程序,并且您在该元素中选择了一些文本,则将(click)调用该处理程序。有办法防止这种情况吗?这是说明问题的Plunkr。相关代码:

@Component({
  selector: 'my-app',
  template: `
    <div>
      <h2 (click)="handleClick()">Click or select this text</h2>
    </div>
  `
})
export class App {
  public handleClick() {
    alert('you clicked');
  }
}
Run Code Online (Sandbox Code Playgroud)

angular

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

Visual Studio 2015解决方案资源管理器在提交时不刷新Git更改

我有一个在git源代码控制下的Visual Studio 2015解决方案.我添加了一个新项目,在本地提交了新项目,并将我的提交同步到远程存储库.所有这些都是通过Visual Studio Git插件完成的.但是,解决方案资源管理器仍然显示我的文件已更改或添加:

在此输入图像描述

在Visual Studio团队资源管理器中,在"更改"下,未列出任何内容.在"同步"视图中,它显示"成功同步传入和传出提交".

当我通过git命令行查询本地更改时,没有列出任何内容:

在此输入图像描述

使用刷新按钮在Visual Studio中刷新解决方案也不起作用.只有重新启动Visual Studio才能解决问题.

关于如何解决这个问题的任何线索?

git visual-studio visual-studio-2015

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

使用Visual Studio 2013和TypeScript的SystemJS模块

我正在尝试使用TypeScript在Visual Studio 2013中使用SystemJS模块,但Visual Studio显示错误.

这是我的设置:

  • 适用于Microsoft Visual Studio 2013 1.8.5.0的已安装TypeScript工具
  • 卸载了TypeScript的低版本
  • 项目文件(VS 2013不支持tsconfig.json):

    <TypeScriptToolsVersion>1.8</TypeScriptToolsVersion> <TypeScriptModuleKind >system</TypeScriptModuleKind> <TypeScriptTarget>es5</TypeScriptTarget>

这就是我所看到的:

  • 我的项目编译成功
  • 在浏览器中,AngularJs成功运行
  • 但在Visual Studio中,我看到了波浪线.在悬停时,它表示'表达式声明不是分配或呼叫':

在此输入图像描述

这个问题与这个问题有关,但答案是"使用VS 2015",这对我来说根本不是一个选择.

有没有办法在Visual Studio 2013中使用SystemJS和TypeScript?它不一定是ES6风格的模块,只需要SystemJS和TypeScript的任何组合.谢谢!

visual-studio typescript ecmascript-6 visual-studio-2013 systemjs

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

在 C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe 中找不到 TypeScript 编译器

我安装了 Visual Studio 2015 和 Visual Studio 2015 的 TypeScript 1.8.6。创建新的 TypeScript 项目并构建后,出现以下构建错误:

在 C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe 中找不到编译器

事实上,文件系统中缺少 tsc.exe。

我尝试过的事情:

  • 卸载并重新安装 TypeScript Tools for Visual Studio 2015 1.8.6.0
  • 卸载并重新安装 Visual Studio 2013 1.8.5.0 的 TypeScript 工具
  • 修复 Visual Studio 2015 1.8.6.0 的 TypeScript 工具
  • 我尝试过将其关闭然后再次打开:-)

关于如何解决这个问题有任何线索吗?哪个组件安装 TypeScript SDK?

visual-studio typescript visual-studio-2015

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

Visual Studio单元测试:在每次测试之前运行初始化代码

我正在使用Visual Studio的测试工具进行单元测试.我需要一些初始化代码才能在每次测试之前运行.

我有一个Setup初始化代码类.我已经添加的代码每次测试运行之前运行,使用[AssemblyInitialize],但我无法弄清楚如何做同样一个测试的基础上.

我尝试使用该[TestInitialize]属性,但这仅适用于与[TestInitialize]方法相同的文件中的测试.我希望初始化代码能够自动运行程序集中的所有测试,而不必在每个测试文件中显式调用它.

[TestClass]
public class Setup
{
    [AssemblyInitialize]
    public static void InitializeTestRun(TestContext context)
    {
        //... code that runs before each test run
    }

    [TestInitialize] //this doesn't work!
    public static void InitializeTest()
    {
        //... code that runs before each test
    }
}
Run Code Online (Sandbox Code Playgroud)

c# unit-testing visual-studio visualstudio.testtools

4
推荐指数
2
解决办法
1778
查看次数

gulp-typescript with gulp-sourcemap: output files to same directory

I'm using gulp-typescript and gulp-sourcemaps to compile TypeScript with sourcemaps. I want to output both the .js and the source map files to the same directory as the original .ts file.

I'm using a tsconfig.json file to configure TypeScript, and I'm using typings for managing TypeScript definition files. All of my own code is in the js directory. Here's my project structure:

project root
|-- js/
|   |-- subdir/
|   |   |-- someScript.ts
|   |-- app.ts
|-- typings/
|   |-- …
Run Code Online (Sandbox Code Playgroud)

typescript gulp gulp-sourcemaps gulp-typescript

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