Javascript检查数组值始终返回-1

时间:2014-03-28 22:21:19

标签: javascript angularjs

我的AngularJS应用程序中有以下路径,我在其中保存数组中每个路径的权限级别,如下面的代码所示。然后我使用下面的代码检查当前登录用户是否具有与要加载的路由的权限级别相匹配的权限级别,但即使已记录的用户权限与plevel数组中的其中一个匹配,我也始终得到结果-1。有人可以检查我的代码并告诉我究竟是什么错误以及如何解决它?感谢。

       $routeProvider.when('/clients/new-invoice', 
        {     templateUrl: 'templates/new-invoice.html', 
              controller: 'InvoicesController',
              title: 'New Invoice',
              data: {
                 auth: true,
                 plevel: [5, 6, 8] 
              }                
        });


 $rootScope.$on("$routeChangeStart", function(event, next, current) {

      var CContent = $.cookie('UCookie');

      console.log('User - permission match : ' + $.inArray(CContent, next.data. plevel) );  
  });

1 个答案:

答案 0 :(得分:2)

$.inArray使用严格相等,并且您将字符串与不严格相等的整数(5 === "5" //returns false)进行比较,因此-1。您应该首先将CContent转换为这样的int:

CContent = parseInt($.cookie('UCookie'), 10);