2015-11-01 59 views
0

我想要得到已經分配裏面的變量值NG單擊功能通變NG單擊角JS

mainApp.controller('setSearchController',function($scope) { 

    $scope.getQuery = function(userq) //ng-click function 
    { 
    $scope.userq=userq; 
    }; 

    alert($scope.userq); // showing Undefined even after the click is made 
// Once clicked I want to use **userq** value to make one $https call 
// apart from services,How to use userq here outside getQuery scope 
}); 

NG點擊,其確定獲得未定義的值,但我所要做的是使用相同的控制器,另一種觀點認爲,這將在NG-點擊後呈現發生

.when('/search', { 
    templateUrl: "../static/views/seachResult.html", 
controller: "setSearchController" 
}) 

所以我想要一些後$https呼叫

搜查searchResult.html查看數據
+1

如值範圍分配,你可以使用它在'setSearchController'控制器中的任何地方 –

+0

@AnikIslamAbhi:編輯我的代碼 –

+0

爲什麼alert函數在函數之外? – charlietfl

回答

-1

在語句函數getQuery中移動alert。

mainApp.controller('setSearchController', function($scope) { 
     $scope.userq = null; 
     $scope.getQuery = function(userq) //ng-click function 
     { 
      $scope.userq=userq; 
      alert($scope.userq); 
     }; 
    }); 

或該解決方案

mainApp.controller('setSearchController', ['$scope', '$window', setSearchController]); 

    function setSearchController ($scope, $window) { 
      $scope.userq = null; 
      $scope.getQuery = function(userq) //ng-click function 
      { 
       $scope.userq=userq; 
       $window.alert($scope.userq); 
      }; 
     } 
0

HTML:

<div ng-app="myApp" ng-controller="myCtrl"> 
    <button ng-click="getQuery('myVal')">Test</button> 
    <button ng-click="consoleIt(myVal)">Console</button> 
</div> 

控制器:

angular.module('myApp', []) 
    .controller('myCtrl', ['$scope', function($scope) { 
    $scope.getQuery = function(a){ 
     $scope[a] = a; 
    } 
    $scope.consoleIt = function(a){ 
     console.log(a); 
    } 
    }]); 

getQuery函數創建你的範圍的新屬性。該屬性的名稱與傳遞給函數的(字符串)相同。 consoleIt只需簡單的控制檯記錄其內容。直到您點擊test按鈕,myVal纔會定義。您也可以將一個變量(而不是字符串)傳遞給getQuery,在這種情況下,只需刪除括號內的引號。