小编Haj*_*aji的帖子

AngularJS Jasmine测试失败:无法实例化模块

我的角度应用程序工作得很好,我的测试也是如此,使用了业力和茉莉,直到我添加了一个依赖ui.bootstrap.现在应用程序仍然按预期工作,但我无法运行我的测试.这就是我所拥有的:

app.js - 在ui.bootstrap中添加了依赖

angular.module('myApp', ['ngResource', 'ngRoute', 'ui.bootstrap']).config(function(...) {...});
Run Code Online (Sandbox Code Playgroud)

service.js

angular.module('myApp').service('myService', function () {})
Run Code Online (Sandbox Code Playgroud)

controller.js

angular.module('myApp').controller('MyController', function ($scope, $http, myService) {})
Run Code Online (Sandbox Code Playgroud)

测试/ main.js

describe('Controller: MyController', function () {
    var MyController, scope;
    // load the controller's module
    beforeEach(function(){
        module('myApp');
        inject(function ($controller, $rootScope) {
            scope = $rootScope.$new();
            MyController = $controller('MyController', {
                $scope:scope
            });
        });
    });
    it('should do something', function () {
        expect(scope.myOptions.length).toBe(5);
    });
}); 
Run Code Online (Sandbox Code Playgroud)

我使用grunt和krama运行的测试因以下原因而失败:

Error: [$injector:modulerr] Failed to instantiate module myApp due to:
Error: [$injector:modulerr] Failed …
Run Code Online (Sandbox Code Playgroud)

javascript jasmine angularjs angular-ui-bootstrap karma-jasmine

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

Java SAX解析

我需要解析一个XML流.因为我只需要做一次并构建我的java对象,所以SAX看起来是自然的选择.我正在扩展DefaultHandler并实现startElement,endElement和characters方法,在我的类中有成员保存当前读取值(在characters方法中).

我做我需要的东西没有问题,但我的代码变得非常复杂,我确信没有理由这样做,我可以做不同的事情.我的XML结构是这样的:

<players>
  <player>
    <id></id>
    <name></name>
    <teams total="2">
      <team>
        <id></id>
        <name></name>
        <start-date>
          <year>2009</year>
          <month>9</month>
        </start-date>
        <is-current>true</is-current>
      </team>
      <team>
        <id></id>
        <name></name>
        <start-date>
          <year>2007</year>
          <month>11</month>
        </start-date>
        <end-date>
          <year>2009</year>
          <month>7</month>
        </end-date>
      </team>
    </teams>
  </player>
</players>
Run Code Online (Sandbox Code Playgroud)

当我意识到在文件的几个区域中使用相同的标记名称时,我的问题就出现了.例如,玩家和团队都存在id和name.我想创建我的java类Player和Team的实例.在解析时,我保留了布尔标志,告诉我我是否在团队部分,以便在endElement中我知道该名称是团队的名称,而不是玩家的名字等等.

这是我的代码的样子:

public class MyParser extends DefaultHandler {

    private String currentValue;
    private boolean inTeamsSection = false;
    private Player player;
    private Team team;
    private List<Team> teams;

    public void characters(char[] ch, int start, int length) throws SAXException {
        currentValue = new String(ch, start, length);
    }

    public void startElement(String uri, String …
Run Code Online (Sandbox Code Playgroud)

java xml sax

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

jQuery Deferred .then()在.fail()之后不被调用

我使用jQuery.Deferred并注册done,failthen处理程序:

$.when( some_ajax(url) )
    .done(function(result){})
    .fail(function(){})
    .then(function(){}); //just like that, with a single parameter
Run Code Online (Sandbox Code Playgroud)

我发现当我的ajax调用成功,done并按then顺序调用回调函数时.但是当ajax失败时,会fail调用回调,但是我没有进行then回调.

我已经阅读了jQuery.Deferred文档,但无法找到有关此行为原因的提示.

当使用always替代的then,它被称为在这两种情况下-成功和失败(第一done/ fail被调用,然后always叫).该文档似乎并未表明我所描述的场景之间always和之间的预期差异then,为什么它们的行为有所不同?

jquery jquery-deferred

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

Webpack HTML 捆绑 - 如何删除空格和新行?

在我的 AngularJS 项目中,我有一个 HTML 模板,其中的 innerText 位于新行中:

<button class="btn">
    Click here
</button>
Run Code Online (Sandbox Code Playgroud)

我使用 webpack 作为我的打包器。我希望它修剪那些新的线条/空白。我使用 HtmlWebpackPlugin + minify 尝试了以下配置:

plugins: [
    new webpack.optimize.CommonsChunkPlugin({names: ['vendor'], filename: 'js/[name].js'}),
    new HtmlWebpackPlugin({
        template: path.resolve(__dirname, '../client/index.html'),
        filename: 'index.html',
        inject: 'body',
        minify: {
            collapseWhitespace: true
        }
    }),
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 生成的 HTML 仍然有一个新行。预期的结果是:

<button class="btn">Click here</button>
Run Code Online (Sandbox Code Playgroud)

知道如何删除这些空格吗?

html javascript webpack

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

修复了顶部和底部导航栏,其中包含可滚动内容

我正在使用Bootstrap,需要有2个固定的导航栏,顶部和底部.它们之间的内容很长,需要有一个滚动条.问题是滚动条出现在整个屏幕上,而我希望它只在内容上:

<div>
    <div class="navbar navbar-blend navbar-fixed-top">
        <div class="row">
             <div class="col-xs-9 col-md-9"><span>Text top</span></div>
        </div>
    </div>
    <div id="content">
        <div class="container">
            <div>                
                <div class="row">
                    <div class="col-xs-12 col-md-12"><p>Row1</p></div>
                </div>
                <div class="row">
                    <div class="col-xs-12 col-md-12"><p>Row2</p></div>
                </div>
            </div>
        </div>
    </div>
    <div class="navbar navbar-blend navbar-fixed-bottom">
        <div class="nav"><span>Text buttom</span></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在这里看到:JSFiddle

我一直在关注类似问题的答案(例如这里这里),但它们都没有奏效.我可能错过了一些东西.

在我的JSFiddle中,您可以看到我的原始版本,因为所有建议的修复都不适用于我.

你能帮忙吗?

html css twitter-bootstrap

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

以编程方式设置渐变背景

我有一个图像,我正在放置一个彩色叠加,像这样(颜色从这里取出):

布局/ list_item_view.xml

<View 
    android:id="@+id/image_cover_gradient"
    android:layout_width="fill_parent"
    android:layout_height="80dip"
    android:layout_alignParentTop="true"
    android:layout_marginTop="70dp"
    android:background="@drawable/gradient_blue"        
    />
Run Code Online (Sandbox Code Playgroud)

绘制/ gradient_blue.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape>
        <gradient
            android:angle="90"
            android:startColor="@color/CornflowerBlue"
            android:endColor="@color/Transparent"
            android:type="linear" />
    </shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)

这总是放置一个蓝色覆盖(CornflowerBlue),它按预期工作.

现在我正在尝试以编程方式执行此操作并遵循一些stackoverflow答案(例如),但仍然无法使其工作.这是我的代码:

private void setColor(int color){
    View gradientCover = view.findViewById(R.id.image_cover_gradient);
    // this FAILS because it's a StateListDrawable
    //GradientDrawable coverGd = (GradientDrawable) gradientCover.getBackground();
    //coverGd.setColor(color);

    //this doesn't seem to work either (I don't see any effect on the image)
    GradientDrawable drawable = new GradientDrawable(
            Orientation.BOTTOM_TOP, new int[] { color, …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-drawable

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

包括带有PhoneGap的QR扫描仪应用程序

我开始编写一个需要在其中嵌入QR码读取功能的应用程序.这意味着我基本上希望从我的应用程序中选择一个选项来扫描QR代码,然后执行与我的应用程序相关的逻辑.

我得到了一些解释关于如何在Android中做到这一点的(虽然还没有尝试过),但是现在我决定使用PhoneGap我想知道它是否会改变任何东西.

PhoneGap的使用是否意味着我将有一个通用的方式在我自己的应用程序中包含QR扫描仪应用程序,或者我是否仍然需要处理包括每个平台的QR扫描仪应用程序?

mobile android cordova

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

husky+lint-staged 在 unstaged 文件上运行

我正在尝试添加一个预提交的 git 钩子,它只会在接触(暂存)文件上运行我的 linter。我的项目基于 Create React App。

我将以下内容添加到我的package.json

  "scripts": {
    "lint": "eslint 'src/**/*.js'",
    "lintfix": "eslint 'src/**/*.js' --fix"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*": ["npm run lintfix --", "git add"]
  }
Run Code Online (Sandbox Code Playgroud)

我运行它的原因"*"是因为我希望脚本本身 (lintfix) 强制执行它的配置 ( src/**/*.js)。

问题是我在整个代码库中遇到了大量 eslint 错误,而不仅仅是在我希望的暂存文件上。

仅在暂存文件上运行 eslint 需要什么配置?

githooks node.js reactjs eslint

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

用于启动本机应用程序的QR代码

关于在Android设备中使用QR码的2个问题:1.是否可以从QR码启动原生Android应用程序?也许通过一些配置的URI架构?2.对我来说可能有用的另一个选择是在我自己的应用程序中安装QR码扫描程序.我是否有可能以某种方式包含扫描我的应用程序内的QR码的不同应用程序?或者我必须自己实施扫描?

谢谢

android qr-code

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

如何防止广告拦截器出现在我网站的路由上?

在我的 React Web 应用程序(一个内容管理系统)中,我有一个“广告商”屏幕,用户可以在其中处理“广告商”实体。

该屏幕与我自己的服务器(同一域)上的端点交互,其中包含单词“广告商”,例如

GET <domain>/advertiser/31 或者 GET <domain>/info?advertisers

问题在于广告拦截器将我的路线识别为有害路线并阻止对这些路线的请求。

除了重命名端点之外,还有其他方法可以克服它吗?

http endpoint adblock reactjs

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

XMLHttpRequest浏览器支持

有没有理由以下代码片段在IE7中不起作用?

var http = new XMLHttpRequest();
var url = 'http://my_site.com/';
var obj = createJsonParamsObj();
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.send(JSON.stringify(obj));
Run Code Online (Sandbox Code Playgroud)

从文档看起来似乎new XMLHttpRequest()应该工作,但有疑虑,因为我无法测试它(仅在兼容模式)所以也许我更好地使用new ActiveXObject.

javascript xmlhttprequest cross-browser

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

UI网格 - 格式化数据

我正在使用新的Angular UI Grid(计划替换ng-grid).我的数据需要一些格式才能显示在表格中.例如,我的服务器返回一个名为"status"的属性作为数字,但我想将其显示为一个好名字.

如果status = 1则显示"Todo",如果status = 2则显示"Doing"等.

如何在UI Grid中完成?

angularjs angular-ui-grid

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

自定义指令隐藏但代码仍然运行

我有一个自定义指令,有时使用ng-hide隐藏:

<my-custom-directive ng-show="vm.showBox"
    value="vm.objects"
></my-custom-directive>         
Run Code Online (Sandbox Code Playgroud)

我的自定义指令代码的片段:

function myCustomDirective() {
    var directive = {
        controller: controller,
        controllerAs: 'vm',
        ///...
        scope: {
            value: '='
        }
    };
    return directive;

    function controller($scope) {
        var vm = this;
        ///...
        $scope.value.dates = $scope.value.dates || [];      
    }
}
Run Code Online (Sandbox Code Playgroud)

问题:即使不应该加载/显示指令(因为它vm.showBox是假的),自定义指令的控制器代码$scope.value也会运行,在这种情况下它会失败,因为没有传递(它在那里未定义).

如果指令被隐藏,为什么指令的控制器代码仍会运行?我想假设如果使用该指令,则给出有效参数而不必检查是否$scope.value已定义.

angularjs angularjs-scope angular-directive

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