AngularJS的$scope变量不会进入视图

AngularJS $scope variable does not go into view

本文关键字:视图 变量 scope AngularJS      更新时间:2023-09-26

我有一个简单的布尔变量,它将div切换为在启动时隐藏,然后在操作之后显示,直到应用程序结束。但是它不会切换——DIV总是隐藏的。请帮忙,下面的代码有什么问题:

<div class="right" ng-controller="EmployeeDetailsCtrl" ng-show={{showEmployeeDetails}}>
        <p>{{employee.name}} {{employee.surname}}</p>
</div>

inside EmployeeDetailsCtrl controller:

$scope.$on('showEmployee', function (event, data) {
    $scope.showEmployeeDetails = true;
    $scope.employee = data;
});
$scope.showEmployeeDetails = false;

顺便说一下,$作用域。触发事件后,employee变量正确更新,所以我真的卡住了这里发生了什么。

ng-show中删除{{}},如下所示:

<div class="right" ng-controller="EmployeeDetailsCtrl" ng-show="showEmployeeDetails">
        <p>{{employee.name}} {{employee.surname}}</p>
</div>

当您使用ng-show时,您绑定到表达式,而不是字符串,因此只需使用:

ng-show="showEmployeeDetails"。这就是为什么你可以做更复杂的事情,比如ng-show="1 + 1 === 2"

如果仍然没有截断它,这可能是一个作用域问题,原语被分配给子作用域,而没有在父作用域上看到。从你展示的代码中看起来不像,但也许它是为了这个问题而简化的,你永远不知道。