2016-02-26 61 views
0

我使用AngularJS 1.5.0AngularJS - 控制器值不dispaying

這裏是我的HTML:

<!DOCTYPE html> 
<html ng-app="app"> 
    <head> 
    </head> 

    <body ng-controller="TestController as controller"> 

    {{controller.test}} 

    <script src="libraries/angular/angular.min.js"></script> 
    <script src="js/app.js"></script> 
    </body> 

</html> 

這裏是我的app.js:

var app = angular.module("app", []); 

app.controller("TestController", function() { 
    var test = "Hello World"; 

// window.alert(test); THIS ALERT IS WORKING 
}); 

在我的索引,它不顯示任何東西。但是,警告測試變量確實有效。

回答

3

test變量對您的控制器是私有的。如果你想顯示從控制器本身就是一種價值,你應該給它分配使用this關鍵字控制器

this.test = 'Whatever'; 
+0

完美的工作與詳細的原因。謝謝! –

2

您必須使用$scope來綁定html代碼中的值。

app.controller("TestController", function($scope) { 
    $scope.test = "Hello World"; 
}); 

,或者您可以使用this創建電流控制器的情況下

app.controller("TestController", function($scope) { 
    this.test = "Hello World"; 
}); 
+0

在他的榜樣,他希望是避免使用'$ scope',這就是爲什麼用途控制器作爲語法。 – Raulucco

+1

啊!是的,我沒有注意到,任何方式謝謝@Raulucco :) –

2

值分配給$scope

var app = angular.module("app", []); 

app.controller("TestController", function($scope) { 
    $scope.test = "Hello World"; 

// window.alert(test); THIS ALERT IS WORKING 
}); 

,或者您也可以用其他的方式

var app = angular.module("app", []); 

app.controller("TestController", function($scope) { 
    this.test = "Hello World"; 

// window.alert(test); THIS ALERT IS WORKING 
}); 
1

this.test = "your value here"將其分配給控制器實例。如果你想使用控制器的範圍,所以$scope.test = "value here"和在視圖中使用{{test}}

當你宣佈與var關鍵字的變量將是private,但使用它,它查看您需要它是一個public