小编Cab*_*cks的帖子

是否可以使用拦截器将GET/POST参数添加到Angular $ http请求中

假设我需要在用户发出的每个请求中包含GroupId参数,但我不想修改每个服务调用以包含它.是否可以将GroupId自动附加到所有请求,无论是POST还是GET查询字符串?

我一直在研究拦截器request功能,但无法弄清楚如何进行更改

**编辑**

下面的当前工作样本是Morgan Delaney和haimlit建议的组合(我认为无论如何它都是一个组合).基本思想是,如果请求是POST,请修改config.data.对于GET,请修改params.到目前为止似乎工作.

还不清楚提供者系统如何在Angular中工作,所以我不确定在这里修改data.params属性是否完全合适.

.config(['$httpProvider', function ($httpProvider) {
  $httpProvider.interceptors.push(['$rootScope', '$q', 'httpBuffer', function ($rootScope, $q, httpBuffer) {
      return {

          request: function (config) {

              if (config.data === undefined) {
                  //Do nothing if data is not originally supplied from the calling method
              }
              else {
                  config.data.GroupId = 7;
              }

              if (config.method === 'GET') {
                  if (config.params === undefined) {
                      config.params = {};
                  }
                  config.params.GroupId = 7;
                  console.log(config.params);
              }

              return config;
          }
      };
  } ]);
 } …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-http-interceptors

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

如何在AngularJS项目中包含ui.router?

我一直收到这个错误:

`错误:[$ injector:nomod]模块'ui.router'不可用!您要么错误拼写了模块名称,要么忘记加载它.

但我很确定我已正确配置所有内容

该项目是由Yeoman创建的,并使用Bower来管理依赖项,Grunt构建了所有项目.

yeoman角度生成器创建了带有基本ngRouter的样板,所以我安装了ui.router

bower install angular-ui-router --save
Run Code Online (Sandbox Code Playgroud)

角度版本

1.2.16
Run Code Online (Sandbox Code Playgroud)

凉亭文件

上面的行在依赖项列表中使用此行更新了bower.json文件:

"angular-ui-router": "~0.2.10"
Run Code Online (Sandbox Code Playgroud)

app模块设置

我更新了app.js文件,添加了对ui.route的依赖(除了各种其他依赖项)angular.module('app',['ngRoute',...'ui.router'])

的index.html

<!-- build:js(.) scripts/vendor.js -->
<!-- bower:js -->
...
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
<!-- endbower -->
<!-- endbuild -->
Run Code Online (Sandbox Code Playgroud)

我在上面的目录中有上面的文件,我很肯定它就在那里(我复制并粘贴路径以避免拼写错误).我也尝试了缩小版本没有区别.

编辑

我对所有这些都非常非常新(角度,凉亭,自耕农等)所以我很可能这样做是错的,所以我不再需要包含ui.router依赖吗?我的意思是,它是否已经以某种方式集成到核心角度框架?ui.router被弃用了吗?

angularjs yeoman bower angular-ui-router

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

如何在AngularJS中为$ scope分配模型

根据我读到的最佳实践,在我的控制器中,我将模型分配给$ scope而不是将多个单独的值分配给$ scope:

  .controller('TestCtrl', function AboutCtrl($scope, $http) {

    var model = {
        name: 'Bob',
        address: 'Squaresville'
        }
    };

    $scope = model;
})
Run Code Online (Sandbox Code Playgroud)

在我的模板中:

<input type="text" ng-model="model.name" /> {{model.name}}
<input type="text" ng-model="model.address" /> {{model.address}}
Run Code Online (Sandbox Code Playgroud)

但是当页面最初加载时,文本框没有任何价值.但是当我输入时,匹配的{{...}}标签会更新.

为什么初始值不会更新?

angularjs angularjs-scope

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