相关疑难解决方法(0)

AngularJS:如何使用$ resource请求发送身份验证令牌?

我想在从API请求资源时发送身份验证令牌.

我确实使用$ resource实现了一项服务:

factory('Todo', ['$resource', function($resource) {
 return $resource('http://localhost:port/todos.json', {port:":3001"} , {
   query: {method: 'GET', isArray: true}
 });
}])
Run Code Online (Sandbox Code Playgroud)

我有一个存储身份验证令牌的服务:

factory('TokenHandler', function() {
  var tokenHandler = {};
  var token = "none";

  tokenHandler.set = function( newToken ) {
    token = newToken;
  };
  tokenHandler.get = function() {
    return token;
  };

  return tokenHandler;
});
Run Code Online (Sandbox Code Playgroud)

我想tokenHandler.get通过Todo服务发送的每个请求发送令牌.我能够通过将其置于特定动作的调用中来发送它.例如,这有效:

Todo.query( {access_token : tokenHandler.get()} );
Run Code Online (Sandbox Code Playgroud)

但我更愿意将access_token定义为Todo服务中的参数,因为它必须随每次调用一起发送.并改善干旱.但是工厂中的所有东西只执行一次,因此在定义工厂之前必须提供access_token,之后它不能更改.

有没有办法在服务中放置动态更新的请求参数?

javascript authentication angularjs

62
推荐指数
5
解决办法
5万
查看次数

AngularJS:$ scope.$ watch不会更新自定义指令中从$ resource获取的值

我遇到了一个让我疯狂的自定义指令的问题.我正在尝试创建以下自定义(属性)指令:

angular.module('componentes', [])
    .directive("seatMap", function (){
        return {
            restrict: 'A',
            link: function(scope, element, attrs, controller){

                function updateSeatInfo(scope, element){
                    var txt = "";
                    for (var i in scope.seats)
                        txt = txt + scope.seats[i].id + " ";
                    $(element).text("seat ids: "+txt);
                }

                /* 
                    // This is working, but it's kind of dirty...
                    $timeout(function(){updateSeatInfo(scope,element);}, 1000);
                */

                scope.$watch('seats', function(newval, oldval){
                    console.log(newval, oldval);
                    updateSeatInfo(scope,element);
                });
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

这个"属性类型"指令(称为seatMap)试图显示我将从服务器通过$ resource service(参见下面的代码)获取到div(元素)的座位ID列表(例如,用于剧院) .

我正在使用这个简单的部分html:

<div>
    <!-- This is actually working -->
    <ul>
        <li ng-repeat="seat in seats">{{seat.id}}</li>
    </ul> …
Run Code Online (Sandbox Code Playgroud)

javascript json watch angularjs

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

标签 统计

angularjs ×2

javascript ×2

authentication ×1

json ×1

watch ×1