2016-08-22 81 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