gpt4 book ai didi

javascript - angularjs ns-显示逻辑流程

转载 作者:行者123 更新时间:2023-12-03 11:55:55 24 4
gpt4 key购买 nike

我是 angularjs 的新手。我试图根据 $scope 对象的属性来显示 html 元素,但不使用任何表单元素。

这是代码片段:

<div id="ListApp">
<div ng-controller="ListCtrl">
{{ myData.prova }}: {{ myData.logged }}
<div id="secretContent" ng-show="myData.logged">
<ul>
<li ng-repeat="elemento in lista">
<input type="checkbox" ng-model="elemento.comprato" />
<span ng-if="!elemento.comprato">{{ elemento.nome }}</span>
<span ng-if="elemento.comprato" style="text-decoration:line-through;">{{ elemento.nome }}</span>
</li>
</ul>
<input type='text' id='input_nome'/><button ng-click="aggiungi()">Aggiungi</button>
</div>
</div>
</div>

这是 Controller 部分:

<script>
var listaViaggio = angular.module('listApp', ['directive.g+signin']);
listaViaggio.controller('ListCtrl', ['$scope',function ListCtrl($scope) {
$scope.lista = [];
$scope.myData={};
$scope.myData.prova="test";
$scope.myData.logged=0;
$scope.aggiungi = function(){
$scope.lista.push({
'nome':document.getElementById("input_nome").value,
'comprato':false
});
};
$scope.$on('event:google-plus-signin-success', function (event, authResult) {$scope.myData.logged=1;console.log($scope.myData.logged);});
$scope.$on('event:google-plus-signin-failure', function (event, authResult) {$scope.myData.logged=0;console.log($scope.myData.logged);});
}]);
</script>

很容易看出,我在 google+ 登录时更改了 $scope.myData.logged 的​​状态,并且我预计 ID 为 SecretContent 的 div 将根据此属性显示或不显示,但我已经可以看到,ng-show 的真实性仅评估一次,并且与属性的实际值无关,因此,当它发生变化时,不会发生任何事情。

我的代码有什么问题吗? ng-show 命令的正确逻辑流程是什么以及如何将其绑定(bind)到 $scope 属性?

提前感谢大家。

最佳答案

每当值发生更改时,请使用 $scope.$apply()。

$scope.$apply() 将更新页面内容。

关于javascript - angularjs ns-显示逻辑流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25616641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com