小编Gio*_*Gpx的帖子

使用AngularJS'$ http服务通过GET请求发送数组

我需要使用该$http服务发送GET请求.其中一个参数是一组id.网址看起来像这个mysite.com/items?id[]=1&id[]=2&id[]=3&id[]=4

我试过这种方法

$http(
  method: 'GET',
  url: '/items',
  params: {
    id: ids // ids is [1, 2, 3, 4]
  }
)
Run Code Online (Sandbox Code Playgroud)

但我记下的网址是mysite.com/items?id=%5B%221%22%2C%222%22%2C%223%22%2C%224%22%5D

那是因为Angular在JSON字符串中转换我的值.有没有办法得到我想要的行为?

[更新]

由于Jonathan建议使用jQuery,我解决了这个问题$.param().

$http(
  method: 'GET'
  url: '/items?' + $.param({id: ids})
)
Run Code Online (Sandbox Code Playgroud)

javascript http angularjs angular-http

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

对Express上的某些请求禁用csrf验证

我正在使用Express框架编写一个带有Node.js的小型Web应用程序.我正在使用csrf中间件,但我想为某些请求禁用它.这是我在我的应用程序中包含它的方式:

var express = require('express');
var app = express();

app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.cookieSession({secret: 'secret'}));
app.use(express.csrf());
Run Code Online (Sandbox Code Playgroud)

我想设置一个没有csrf控件的POST路由.

csrf node.js express

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

使用AngularJS获取JSON数据并在返回的对象上添加方法

我需要从Angular的服务器获取一些JSON数据.让我们说用户数据.我创建了这样的服务:

app.service('User', function($http) {
  retrun $http({method: 'GET', url:'/current_user'});
});
Run Code Online (Sandbox Code Playgroud)

在我的控制器中:

app.controller('SomeCtrl', function($scope, User) {
  User.success(function(data) {
    $scope.user = data;
  });
});
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但如果我想向用户添加一些方法怎么办?例如,在我想要的视图中{{user.isAdmin()}}.这是正确的方法吗?我在哪里可以添加这些方法?

json angularjs

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

将 Jest 与异步服务器组件结合使用

我正在尝试测试一个 React 服务器组件,它返回一个 Promise。Jest 中的标准render方法不喜欢这样。

我检查了类似的问题,但所有问题都 > 4 岁,并且正在处理componentDidMount等。

/// Home.tsx
async function Home(props: Props) : Promise<JSX.Element> {
 // call async functions to setup component
}

/// home.test.ts
describe('Home', () => {
  it('renders a heading', () => {
     render(<Home />);
  }
}
Run Code Online (Sandbox Code Playgroud)

错误:

'Home' can not be used as a JSX element
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题有什么建议吗?一个明显的解决方案是让组件不返回 Promise,但我正在编写代码来满足不理想的测试框架。

javascript reactjs jestjs react-testing-library

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

在Webpack中使用不同的加载器,具体取决于我导入的位置

我正在使用svg加载程序在我的React文件中导入SVG图标.

webpack.config.js:

{ test: /\.svg(\?.*)?$/, loader: 'svg' }
Run Code Online (Sandbox Code Playgroud)

component.js:

import Icon from './icon.svg'

render () {
  return <svg {...Icon.attributes} dangerouslySetInnerHTML={{ __html: Icon.content }} />
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我没有任何问题.我也想在我的CSS中使用SVG图像.如果我这样做:

.class {
  background-image: url('./icon.svg');
}
Run Code Online (Sandbox Code Playgroud)

我的最终结果如下:

background-image:url([object Object]);

我想将url加载器用于我的CSS文件.我试过这个:

.class {
    url('url!./icon.svg?name=[path][name].[ext]&limit=1&mimetype=image/svg+xml');
}
Run Code Online (Sandbox Code Playgroud)

在我的CSS中我得到:

background-image:url(data:image/svg + xml; base64,bW9 ...

这看起来像我想要的但图像不显示,如果我在一个单独的选项卡中打开网址,我得到这个:

module.exports = {

这让我觉得svg加载器仍在运行.

有没有办法根据我导入的文件指定不同的加载器?

svg reactjs webpack

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

我应该命名我的角度指令吗?

AngularJS ng为其指令定义了一个前缀ng-repeat.当我创建自己的指令时,最好的做法是为它们添加前缀吗?

比如哪个更好?

<chat></chat>
or
<myown-chat></myown-chat>
Run Code Online (Sandbox Code Playgroud)

myown我的网站特定命名空间在哪里.

[UPDATE]

现在,AngularJS指南建议命名空间指令https://docs.angularjs.org/guide/directive#creating-directives

angularjs angularjs-directive

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

在Polymer元素中使用CSS预处理器

使用Polymer,我可以通过添加<style>标记在元素定义中包含我的CSS样式.我想做的是为这些样式添加预处理器.像https://autoprefixer.github.io/这样的东西会很棒.

有没有外部CSS文件的方法吗?

css polymer autoprefixer css-preprocessor

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

是否可以在AngularJS表达式中设置默认值?

我有一个AngularJS表达式包含在<a>标签中.表达式正在评估allow变量.

<a href="#" >{{allow}}</a>
Run Code Online (Sandbox Code Playgroud)

如果allownullundefinedAngular什么都没有.相反,我想显示一个默认字符串.


为了让您更好地理解,这正是我想要实现的目标.

在此输入图像描述

右侧的模态是从左侧的表格生成的.如果用户没有输入任何文字为"允许按钮文本"和"禁止按钮的文字"我要显示ALLOWDON'T ALLOW分别.

这是我的代码:

<div id="test2" class="row"  ng-app="">    
  <label for="title">Title</label>
  <input type="text" name="title" ng-model="title" placeholder="https:/your website.com/wants to:">

  <label for="title">Allow Button Text</label>
  <input type="text"  ng-model="allow" placeholder="ALLOW">

  <label for="title">Disallow Button Text</label>
  <input type="text"  ng-model="disallow" placeholder="DONT ALLOW">     

  <p>{{title}}</p>
  <a href="" >{{disallow}}</a>
  <a href="" >{{allow}}</a>
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-interpolate

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

在AngularJS指令控制器中使用CoffeeScript的类

在使用CoffeeScript创建AngularJS指令时,我使用了这种方法:

angular
.module('MyApp', [])
.directive 'myDirective', ->
restrict: 'E'
controllerAs: 'ctrl'
controller: ->
  new class
    constructor: ->
      @value = 3
Run Code Online (Sandbox Code Playgroud)

此代码适用于Angular 1.2.14- jsbin,但不适用于1.3.0- jsbin.我在控制台中没有任何错误,只是它什么也没做.看起来控制器是一个空对象.

coffeescript angularjs angularjs-directive

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