2016-09-10 10 views
1

に表示されていない私は、HTMLスコープ変数は、HTML

app.controller('testController', function($rootScope, $http, $scope, 
    $uibModal, $window) { 

$scope.show = function(dashboard) { 
    $scope.test="test"; 
    $scope.option.testVisible=true; 
    } 
}) 

およびHTML

<div ng-controller="testController"> 
<div>{{test}}</div> 

本に表示されていないコントローラ内の関数の内部にスコープ変数を有します<div>{{test}}</div>ng-style="{'visibility': option.testVisible?'visible':'hidden'}"最初に隠され、次いで$scope.show

01の値を表示しないHTMLでtrueに設定されています $scope.testが関数と内部コントローラの外で定義されている場合、同じことが働きます。

答えて

-2

あなたの価値は、それが機能の中に置かれているという非常に理由から表示されていません。詳しく見ると、$scope.show関数がコード内のどこでも呼び出されていないことがわかります。それはちょうど定義されている。

現在、現在のコードを変更したくない場合は、目的を達成するための2つの方法があります。

$scope.showは、定義した直後にコントローラで機能します。

app.controller('testController', function($rootScope, $http, $scope, 
    $uibModal, $window) { 

$scope.show = function(dashboard) { 
    $scope.test="test"; 
    } 

$scope.show(); 
}) 

第二に、あなたはng-initタグを使用してHTMLから同じ$scope.show関数を呼び出すことができます。

<div ng-controller="testController" ng-init="show()"> 
<div>{{test}}</div> 

どちらの方法は、あなたの$scope.show関数を呼び出しますし、それが$scope変数にテスト変数を配置します。それがあなたのページに表示されます。

これは、変数割り当てをコントローラ内またはコントローラ内の関数内に置くこととの違いです。

+0

@downvotersさんのコメントはありませんか? –