相关疑难解决方法(0)

Angular 2和jQuery - 如何测试?

我正在为Angular 2项目使用Angular-CLI(webpack版本),我也需要使用jQuery(遗憾的是.在我的情况下,它是Semantic-UI的依赖,我用它来处理菜单下拉菜单).

我使用它的方式:

npm install jquery --save
Run Code Online (Sandbox Code Playgroud)

然后列在数组中的angular-cli.json文件中scripts:

scripts": [
  "../node_modules/jquery/dist/jquery.min.js"
]
Run Code Online (Sandbox Code Playgroud)

所以它被包含在bundle文件中,这个文件自动用于root html文件:

<script type="text/javascript" src="scripts.bundle.js">

然后declare var $: any;在我需要它的文件中,它运行良好.

但是ng test测试存在问题,因为Karma会抛出错误$ is not defined.

jquery karma-jasmine angular-cli angular2-testing angular

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

ReferenceError: $ 未定义 - Jasmine

我以前从未使用过 Jasmine,但我正在从事的这个小项目需要我。无法完全弄清楚,任何帮助将不胜感激。我查看了各种教程并对问题进行了搜索,但对此不熟悉并无济于事。

JS源文件

> $(document).ready(function(){
>    
> 
> $.ajax({ type: 'GET', dataType: "json", url: "db.php/realmadrids", 
> success: showResponse,  error: showError });
> 
> 
> 
>  
> 
> 
> console.debug("error");   function showResponse(responseData){
> 
>   //$("#get1").click(function getPlayers(responseData) { 
>   console.log('Image is clicked');    console.log(responseData);
>     $.each(responseData.realmadrid, function(index, realmadrid){
>       console.log(' is ');
>         $("#playercontentRealMadrid").append("</br><strong> Full Name: </strong>" +realmadrid.PlayerName+ " "+realmadrid.PlayerLastName+"
> </br> <strong>Player Position: </strong>" +realmadrid.PlayerPosition+"
> </br><strong>Player Age: </strong>" +realmadrid.Age+"
> </br><strong>Player Height: </strong>" +realmadrid.Height+"
> </br><strong>Player Weight: </strong>" +realmadrid.Weight+"
> </br><strong>Team …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery unit-testing jasmine

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