控制器中的函数内的范围变量未在html中显示

时间:2016-09-10 07:43:55

标签: angularjs

我在控制器中的函数内部有一个范围变量,它没有在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

中设置为true

html没有显示$scope.test.的值 如果在函数外部和控制器内部定义了$scope.test,则同样适用。

1 个答案:

答案 0 :(得分:-2)

由于非常理由将其放在函数内,因此您的值不会显示。如果你仔细观察,那么你可以看到代码中的任何地方都没有调用$scope.show函数。它只是定义了。

现在,如果您不想更改当前代码,那么您有两种方法可以实现您想要的效果。

定义后立即调用控制器中的$scope.show功能。

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

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

 $scope.show();
})

其次,您可以使用$scope.show标记从HTML调用相同的ng-init函数。

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

两种方式都会调用$scope.show函数,它会将测试变量放在$scope变量中。它将显示在您的页面上。

这是将变量赋值放在控制器内部或控制器内部的区别。