小编dco*_*ith的帖子

从Angular中的服务器下载text/csv内容作为文件

我正在尝试csv从node.js服务器流式传输文件.服务器部分非常简单:

server.get('/orders' function(req, res) {
  res.setHeader('content-type', 'text/csv');
  res.setHeader('content-disposition', 'attachment; filename='orders.csv');
  return orders.pipe(res); // assuming orders is a csv file readable stream (doesn't have to be a stream, can be a normal response)
}
Run Code Online (Sandbox Code Playgroud)

在我的角度控制器中,我试图做这样的事情

$scope.csv = function() {
    $http({method: 'GET', url: '/orders'});
};
Run Code Online (Sandbox Code Playgroud)

ng-click在我的视图中点击按钮时调用此函数:

<button ng-click="csv()">.csv</button>
Run Code Online (Sandbox Code Playgroud)

我已经查看了有关从Angular中的服务器下载文件的其他答案,但没有找到任何对我有用的内容.有一个共同的方法来做到这一点?似乎应该很简单.

javascript http http-headers node.js angularjs

56
推荐指数
4
解决办法
12万
查看次数

Knockout js - beforeRemove动画,同时将项目添加到可观察数组

我有一个敲除js的问题,并将一个可观察的数组显示为列表; 在beforeRemove动画运行时添加项目时,已删除的元素将移动到列表的底部,而不是保持其位置,直到动画完成并删除元素.

这是一个jsfiddle,可以更好地解释这个问题:http://jsfiddle.net/bPP5Q/8/

谁知道我怎么解决这个问题?

JavaScript的:

jQuery(function ($) {
    var ViewModel = function (data) {
        var self = this;
        self.data = ko.observableArray(data);
        self.removeLine = function (elem) {
            if (elem.nodeType === 1) $(elem).fadeOut(3000, function () {
                $(elem).remove();
            });
        }

        self.addLine = function (elem) {
            if (elem.nodeType === 1) 
                $(elem).hide().fadeIn(3000);
        }

        self.removeItem = function() {
            self.data.remove(function(item) { return item.test && item.test == 2; });   
        }

        self.addItem = function() {
            self.data.splice(1, 0, { test: 9 }); 
        }

        self.addremove = function () …
Run Code Online (Sandbox Code Playgroud)

javascript knockout.js

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

RequireJS:如何在构建单个文件时排除某些路径?

我有一个使用RequireJS 2.1.8的Backbone应用程序(即我的所有Backbone视图都使用define()来指定它们的依赖关系).一切都很好,现在我正在尝试使用r.js(通过NPM安装)将我的所有JavaScript连接/缩小为单个文件.

如何设置r.js配置,该配置排除以某些路径开头的依赖项?

我在下面包含了我的main.js文件.在这种情况下,我希望"构建"输出文件排除第三方库(即jquery,骨干等).此外,我想排除任何以"webapp /"开头的依赖项(例如,"webapp/dynamic_cfg",这会导致请求被发送到我的Djang应用程序以获取动态生成的JavaScript文件/模块).

文件夹结构:

|--static/
    |--main.js
    |--myapp/
        |--views/
            |-- MyView.js
            |-- ...
    |--lib
        |--backbone-1.0/
        |--underscore-1.5.1/
        |-- ...
Run Code Online (Sandbox Code Playgroud)

index.html(一个Django模板):

<script src="{% static 'lib/requirejs-2.1.8/require.min.js' %}" data-main="{% static 'main.js' %}" ></script>
Run Code Online (Sandbox Code Playgroud)

main.js:

requirejs.config({

    paths: {
        "jquery": 'lib/jquery-1.10.2/jquery.min',
        "text_loader": 'lib/requirejs-text-2.0.10/requirejs-text',
        "fuelux": 'lib/fuelux-2.3.1',
        "backbone": 'lib/backbone-1.0/backbone.min',
        "underscore": 'lib/underscore-1.5.1/underscore.min',

        // Any module that requires 'webapp/*' will result Require.js
        // making a request to the server webapp.
        "webapp": '..'
    },

    shim: {

        'backbone': {
            deps: ['underscore', 'jquery'], // Load these dependencies first
            exports: 'Backbone' // Create …
Run Code Online (Sandbox Code Playgroud)

javascript requirejs

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

AngularJS Karma测试中的jQuery触发事件

我正在尝试测试我正在编写的新指令.但是,我似乎无法在Karma/Jasmine中使用jQuery触发keydown事件.

以下是测试的简化版本:

'use strict';

describe('', function() {

  var $compile;
  var $scope;

  beforeEach(inject(function(_$compile_, _$rootScope_) {
    $compile = _$compile_;
    $scope = _$rootScope_.$new();
  }));

  describe('Getting Trigger To Work', function() {

    it('Should Trigger a KeyDown Event', function() {

      var el = $compile('<form name="testing"><input id="field1" name="testfield" ng-model="result" type="text" ng-minlength="5" ng-maxlength="50"/></form>')($scope);
      console.log(el);

      var inputEl = el.find('input');
      console.log(inputEl);

      var e = $.Event('keydown');
      e.which = 65;

      inputEl.trigger(e);

    });

  });

});
Run Code Online (Sandbox Code Playgroud)

我的业力配置包括AngularJS和jQuery.这是部分:

//
files: [
  'lib/angular.js',
  'lib/angular-mocks.js',
  'lib/jquery-1.10.2.min.js',
  'test/**/*Spec.js'
],
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我得到一个错误,我的input元素没有触发器方法:

INFO [watcher]: Changed file "/Volumes/Macintosh HD/dev_libraries/val-on-timeout/test/valOnTimeoutSpec.js".
LOG: Object{0: …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jasmine angularjs karma-runner

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

node-phantom未在网页上启用javascript

我使用node-phantom将项目发布到网站上的购物车.问题是,当我使用page.open导航到购物车页面时(在已经将项目添加到购物车之后),我得到一个html响应,说我需要在浏览器中启用javascript才能查看购物购物车页面.我检查了settings.javascriptEnabled设置,发现它设置为'true'.此时我很困惑,为什么页面认为phantomjs没有启用javascript?

这是我的代码:

var phantom = require('node-phantom');

phantom.create(function (err, ph) {
    ph.createPage(function (err, page) {

        page.get('settings', function(err, oldSettings) {
            console.log('\r\n oldSettings:  ' + JSON.stringify(oldSettings));

            page.open('http://www.somesite.com/shoppingcart/default.cfm', function (err, status) {
                page.injectJs(jqueryPath, function (err) {
                    setTimeout(function() {     
                        page.evaluate(function (injectedSku) {
                            var localErr;
                            var skuInCart;
                            var checkoutLnkMsg;
                            var pageHTML;

                            try {              
                                pageHTML = $("html").html();

                                // Get 'SKUs' input element.
                                skuInCart = $('input[name="SKUs"]').val();

                                if (injectedSku === skuInCart) {
                                    var checkoutLnk = $('#cartAction_bottom a[alt="Checkout"');  

                                    checkoutLnk.on("click", function() {
                                        checkoutLnkMsg = '"' + checkoutLnk.href + '" link has …
Run Code Online (Sandbox Code Playgroud)

javascript node.js web-scraping phantomjs

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

将类添加到 li 时检测事件

将 html 列表设为 ,

<ul id="slider">
    <li class=""></li>
    <li class=""></li>
    <li class=""></li>
    <li class="selected"></li>
    <li class=""></li>
    <li class=""></li>
    <li class=""></li>
<ul>
Run Code Online (Sandbox Code Playgroud)

我正在将选定的类添加到任何 li 元素。在这里,我将 class="selected" 添加到第四个 li 元素。

想要在将所选类添加到任何 li 元素时执行一些代码。

试过这个,但没有按预期工作。

<script>
    $(function() {
        $('#slider').bind('DOMSubtreeModified', function(e) {
            alert("Changed");
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

html javascript jquery html-lists

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

为什么input = text的属性值,但li = number的属性值?

http://jsfiddle.net/3GTtF/2/

<ul>
    <li class="first" value="45">fortyfive</li>
    <li class="second" value="4text5">45</li>
</ul>

<input value="45">
Run Code Online (Sandbox Code Playgroud)
var whatIsValue = $('.first').val();            //  = 45     typeof = number
var whatIsSecondValue = $('.second').val();     //  = 4      typeof = number
var whatIsInputValue = $('input').val();        //  = '45'   typeof = string
Run Code Online (Sandbox Code Playgroud)

为什么var whatIsSecondValue = 4而不是'4text5'

为什么var whatIsInputValue = '45'而不是45

javascript jquery attributes typeof

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

如何使用JSTL在JSP中捕获变量中的当前日期和时间?

如何使用JSTL在JSP中捕获变量中的当前日期和时间?

<c:set property="currentTime" value="${System.CurrentTimeMillis()}"/> 
Run Code Online (Sandbox Code Playgroud)

我在我的JSP中使用上面的代码但它抛出了一个错误.

org.apache.jasper.JasperException: The function currentTimeMillis must be used with a prefix when default namespace is not specified.
Run Code Online (Sandbox Code Playgroud)

jsp jstl

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

jQuery Accordion在点击时更改字体真棒图标类

我有一个关于我发现的简单jQuery手风琴的问题.

我想使用Font Awesome图标来指示带有加号和减号图标的活动/非活动状态.在我的JSFiddle中,您可以看到带有加号图标的手风琴标题.单击标题时,"fa-plus"类需要更改为"fa-minus".

我已经使用add和removeClass做了一些测试,但是我无法让它工作.我真的是一个jQuery/javascript菜鸟!希望你们能帮助我:-).

jQuery('.accordion dt').click(function() {

    jQuery('.accordion dt').removeClass('active');
    jQuery('.accordion_content').slideUp('normal');

    if(jQuery(this).next().is(':hidden') == true) {
        jQuery(this).addClass('active');
        jQuery(this).next().slideDown('normal');
    }
});

jQuery('.accordion_content').hide();
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/XrGU8/

javascript css jquery accordion font-awesome

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

如果值大于255,如何使用angluarJS禁用按钮?

如果textarea包含超过255个字母,我想使用angularJS来禁用提交按钮.我通常不使用angularJS,所以我真的不知道怎么做.这就是我所拥有的:(HTML)

<tr>
    <td colspan="2" align="center">
        <textarea rows="5" cols="40" name="Messge" ng-model="message"></textarea>
    </td>
</tr>
<tr>
    <td align="center">Number of letters left: <span ng-bind="left()"></span>
    </td>
</tr>
<tr>
    <td align="center" colspan="2">
        <input type="submit" value="submit" ng-disabled="error" />
    </td>
</tr>
Run Code Online (Sandbox Code Playgroud)

现在这里是javascript文件代码:

angular.module('myApp', []).controller('userCtrl', function ($scope) {
    $scope.messge = '';
    $scope.error = false;
    $scope.incomplete = false;

    $scope.$watch('messge', function () { $scope.test(); });

    $scope.test = function () {
        if ($scope.messge.length > 255) {
            $scope.error = true;
        } else {
            $scope.error = false;
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

第二档:

app.controller("myNoteCtrl", function ($scope) …
Run Code Online (Sandbox Code Playgroud)

html javascript angularjs

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