2016-08-22 58 views
0

我想通过Javascript变量传递给角度js中的ng-click事件,但得到的是空值。将javascript变量传递给角度js中的ng-click事件

下面是我的javascript变量需要传递到角JS

<script> 

var userid = localStorage.getItem("userid"); 
var uName = localStorage.getItem("name"); 
var uage = localStorage.getItem("age"); 


<script> 

下面是我的角度JS控制器

<script> 
app1 = angular.module('app1'); 

     app1.controller('mainCtrl', 
       ['$scope', '$rootScope', function ($scope, $rootScope) { 

       console.log("Data okay"); 

        }]); 

<script> 

这里是怎么想过去的变量NG-CLICK事件

<li ng-show=" ap in parkers | filter:{ name: uname } " id="userid" ng-click="connect(userid,uname,uage)"> 
</li> 

我该如何做到这一点,并确保它会正在工作。谢谢

回答

1

您的变量需要附加到控制器的$scope。删除你的变量,并添加$scope变量,象下面这样:

app1.controller('mainCtrl', 
     ['$scope', '$rootScope', function ($scope, $rootScope) { 

     console.log("Data okay"); 
     $scope.userid = localStorage.getItem("userid"); 
     $scope.uName = localStorage.getItem("name"); 
     $scope.uage = localStorage.getItem("age"); 
     $scope.connect = function(userId, uName, uAge){ 
      console.log('It worked!'); 
     } 

}]); 

注意,connect功能还需要连接到$scope通过ng-click被调用。

+1

只是一个补充:这里的区别是'$ scope'(由于显而易见的原因命名)将值限定在它定义的控制器中,并将该值绑定到视图。 'var'不会绑定到模板视图,所以不能在'ng-click/show'等文件中访问 –

+0

同意所有的100% – VSO

+0

谢谢大家。它的工作 – nackolysis