我是AngularJS的新手。我在Controller File中有这种程序。
.controller('AppCtrl', function($scope, $ionicPopup, $timeout, $ionicModal, $state, $http, $ionicLoading) {
var loginid;// globally Defined
$scope.ajaxLogin = function(){
loginid = 1;
}
$scope.myInfo = function(){
alert(loginid);
}
})
但每当我致电myInfo()
时,功能提醒我:undefined
ajaxLogin()
中的将首先调用。然后,如果仅点击按钮myInfo()
将会调用并显示警报。在普通Javascript它工作正常。但不知道如何使用angularjs。
前:
var globalvarialbe;
function function1()
{
globalvarialbe=12;
}
function function2()
{
var local = globalvarialbe;
}
答案 0 :(得分:2)
我要求提供更多信息的原因是凯德·刘易斯是因为你拥有它的方式应该非常好。
.controller('AppCtrl', function($scope, $ionicPopup, $timeout, $ionicModal, $state, $http, $ionicLoading) {
var loginid;// globally Defined
$scope.ajaxLogin = function(){
loginid = 1;
}
$scope.myInfo = function(){
alert(loginid);
}
});
你可以看到它在这里工作: http://plnkr.co/edit/tkpmS1vqsOjhUp8rA99Y?p=preview
但是你并不是在恭维整个画面,所以你要发出好难的调试
答案 1 :(得分:2)
我已经测试了这段代码,它运行得很好:
控制器:
angular.module('vars').controller('varsController', ['$scope', function($scope) {
var loginid;// globally Defined
$scope.ajaxLogin = function(){
loginid = 1;
};
$scope.myInfo = function(){
alert(loginid);
};
$scope.ajaxLogin();
}]);
HTML视图:
<div ui-view ng-controller="varsController">
<button ng-click="myInfo()">Click</button>
</div>
答案 2 :(得分:0)
答案 3 :(得分:0)
哟需要将变量附加到$ rootScope,以使其在AngularJS中全局可用。这是如何:
.controller('AppCtrl', function($scope, $rootScope, $ionicPopup, $timeout, $ionicModal, $state, $http, $ionicLoading) {
// Make sure you **inject $rootScope** first
$rootScope.loginid;
$scope.ajaxLogin = function(){
$rootScope.loginid = 1;
}
$scope.myInfo = function(){
console.log($rootScope.loginid); //Also, use console logs for better Dev Experience
}
})
Click here有关如何使用范围的更详细文档以及 NOT 的方式。