【问题标题】:AngularJS $scope variable does not go into viewAngularJS $scope 变量没有进入视图
【发布时间】:2015-08-05 16:39:15
【问题描述】:

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

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

在 EmployeeDetailsCtrl 控制器内部:

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

顺便说一句,$scope.employee 变量在事件触发后会正确更新,所以我真的不知道这里发生了什么。

【问题讨论】:

标签: javascript angularjs


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    如果还是不行,这可能是一个作用域问题,原语被分配给子作用域而不是父作用域。从您显示的代码来看,它看起来不像,但也许对于这个问题它已经简化了,您永远不知道。

    【讨论】:

    • 感谢您的解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    相关资源
    最近更新 更多