我需要使用该$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) 我正在使用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路由.
我需要从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()}}.这是正确的方法吗?我在哪里可以添加这些方法?
我正在尝试测试一个 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,但我正在编写代码来满足不理想的测试框架。
我正在使用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)
我的最终结果如下:
我想将url加载器用于我的CSS文件.我试过这个:
.class {
url('url!./icon.svg?name=[path][name].[ext]&limit=1&mimetype=image/svg+xml');
}
Run Code Online (Sandbox Code Playgroud)
在我的CSS中我得到:
这看起来像我想要的但图像不显示,如果我在一个单独的选项卡中打开网址,我得到这个:
这让我觉得svg加载器仍在运行.
有没有办法根据我导入的文件指定不同的加载器?
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
使用Polymer,我可以通过添加<style>标记在元素定义中包含我的CSS样式.我想做的是为这些样式添加预处理器.像https://autoprefixer.github.io/这样的东西会很棒.
有没有外部CSS文件的方法吗?
我有一个AngularJS表达式包含在<a>标签中.表达式正在评估allow变量.
<a href="#" >{{allow}}</a>
Run Code Online (Sandbox Code Playgroud)
如果allow是null或undefinedAngular什么都没有.相反,我想显示一个默认字符串.
为了让您更好地理解,这正是我想要实现的目标.

右侧的模态是从左侧的表格生成的.如果用户没有输入任何文字为"允许按钮文本"和"禁止按钮的文字"我要显示ALLOW和DON'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) 在使用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.我在控制台中没有任何错误,只是它什么也没做.看起来控制器是一个空对象.
angularjs ×5
javascript ×3
reactjs ×2
angular-http ×1
autoprefixer ×1
coffeescript ×1
csrf ×1
css ×1
express ×1
http ×1
jestjs ×1
json ×1
node.js ×1
polymer ×1
svg ×1
webpack ×1