小编Dav*_*ave的帖子

使用AngularJS进行服务器轮询

我正在努力学习AngularJS.我第一次尝试每秒获取新数据:

'use strict';

function dataCtrl($scope, $http, $timeout) {
    $scope.data = [];

    (function tick() {
        $http.get('api/changingData').success(function (data) {
            $scope.data = data;
            $timeout(tick, 1000);
        });
    })();
};
Run Code Online (Sandbox Code Playgroud)

当我通过将线程休眠5秒来模拟慢速服务器时,它会在更新UI并设置另一个超时之前等待响应.问题是当我重写上述内容以使用Angular模块和DI来创建模块时:

'use strict';

angular.module('datacat', ['dataServices']);

angular.module('dataServices', ['ngResource']).
    factory('Data', function ($resource) {
        return $resource('api/changingData', {}, {
            query: { method: 'GET', params: {}, isArray: true }
        });
    });

function dataCtrl($scope, $timeout, Data) {
    $scope.data = [];

    (function tick() {
        $scope.data = Data.query();
        $timeout(tick, 1000);
    })();
};
Run Code Online (Sandbox Code Playgroud)

这仅在服务器响应很快时才有效.如果有任何延迟,它会在不等待响应的情况下每秒发送1个请求,并且似乎清除了UI.我想我需要使用回调函数.我试过了:

var x = Data.get({}, function () { });
Run Code Online (Sandbox Code Playgroud)

但得到一个错误:"错误:destination.push不是一个函数"这是基于$ …

javascript angularjs

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

Web API路由到操作名称

我需要一个控制器来返回JSON以供JavaScript使用,所以我继承了ApiController类,但它的行为并不像我预期的那样.Apress书籍Pro ASP.NET MVC 4以及我发现的大多数在线示例给出了以下示例:

public class ServicesController : ApiController
{
    public string[] MethodFruit()
    {
        return new string[] { "Apple", "Orange", "Banana" };
}
Run Code Online (Sandbox Code Playgroud)

通过URL访问:

http://mysite/services/methodfruit
Run Code Online (Sandbox Code Playgroud)

但这永远不会奏效 - 找不到资源.我可以使用的唯一方法是让控制器为每个HTTP动词包含不同的方法,然后:

http://mysite/api/services
Run Code Online (Sandbox Code Playgroud)

哪个调用GET方法.

我检查了Apress网站,但他们似乎没有任何论坛,目前的源代码是在VS 2012,我没有使用.我检查了源文件,他们似乎认为前一种方法应该有效.前一种方法是否不再受支持?

c# asp.net-web-api asp.net-web-api-routing

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

如何找到具有特定依赖项的 npm 包?

我的 webpack 项目有一个新的错误:

浏览器列表:caniuse-lite 已过时。请运行下一个命令npm update caniuse-lite browserslist

我还没有解决,但潜在的问题是:我的 package.json 中没有caniuse-lite - 那么它在哪里?

顺便说一句:运行该命令没有区别。

很明显是依赖或者依赖的依赖,无止境……

npmjs caniuse-lite列出了 80 个依赖包。

有没有办法搜索包的依赖关系图以轻松找到我的 package.json 文件中的哪个包是该行某处依赖于 caniuse-lite 的父包?

npm package.json

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

来自组件的React-Redux调度操作

我正试图通过点击按钮发送一个动作.

我创建了我的组件.我将它连接到由提供商传递给组件的商店.但是我收到一个错误:

未捕获的TypeError:this.doSearchClick不是函数

我有我的进口:

import React, { Component, PropTypes } from 'react';
import { connect } from 'react-redux';
import action_doSearch from '../../actions/searchActions'
Run Code Online (Sandbox Code Playgroud)

我的组件:

class SearchForm extends React.Component {
  constructor(props, doSearchClick) {
    super(props);
    this.search = this.search.bind(this);
    this.doSearchClick = doSearchClick;
  }

  search() {
    this.doSearchClick('bla bla from search');
  }

  render() {
    return(
      <div>
        <button onClick={this.search}>Search</button>
      </div>
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

不确定是否需要:

SearchForm.propTypes = {
  doSearchClick: PropTypes.func.isRequired
};
Run Code Online (Sandbox Code Playgroud)

最后的connect东西:

const mapStateToProps = (state) => {
  return {
    state
  }
};

const mapDispatchToEvents = …
Run Code Online (Sandbox Code Playgroud)

reactjs redux react-redux

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