Angularjs ng开关中的值未更新
我正在使用ng开关更改ui sref的值,但它似乎不起作用,因为该值未更新。 初始值为false,则保留它 Html:Angularjs ng开关中的值未更新,angularjs,Angularjs,我正在使用ng开关更改ui sref的值,但它似乎不起作用,因为该值未更新。 初始值为false,则保留它 Html: <div ng-switch on="result"> <div ng-switch-when=false ui-sref="gotest" class="gotest-button"></div> <div ng-switch-when=true ui-sref="menu" class="gotest-button"
<div ng-switch on="result">
<div ng-switch-when=false ui-sref="gotest" class="gotest-button"></div>
<div ng-switch-when=true ui-sref="menu" class="gotest-button"></div>
</div>
你能给我解释一下怎么了吗
谢谢
$scope.result=angular.isDefined(window.localStorage['result']);
AppCtrl中的代码只运行一次,将结果值设置为false,仅此而已。
你没有任何观察者。
你可以:
- 手动添加观察者
function getResultValue() { return angular.isDefined(window.localStorage['result']) } $scope.$watch(getResultValue, function(newValue) { $scope.result = newValue; });
- 在视图中调用函数:
//控制器代码: $scope.getResultValue=getResultValue//如前一示例所示
// view <div ng-switch on="getResultValue()"> <div ng-switch-when=false ui-sref="gotest" class="gotest-button"></div> <div ng-switch-when=true ui-sref="menu" class="gotest-button"></div> </div>
//查看
您可以在此处阅读有关观察者的信息: 更新
我做了一些误导性的假设。 要对变化做出反应,您需要将它们集成到角度摘要循环中。 我的例子只有在某些东西开始消化时才有效。ngClick指令、$interval服务或其他内容
此处的间隔示例:
我真的不明白为什么newValue被添加到watch函数中,而不是在控制器代码中使用,请您解释一下
控制器wll中的代码只运行一次。watcher中的代码将运行每个摘要。 (之后将在视图中计算角度表达式) 例如:
0初始状态:localStorage['result']未定义
1.应用程序启动,调用摘要,第一个ng swith分支
2.某些内容更改了localStorage['result']值,现在已定义该值
3.对某事的反应调用摘要
4.所有观察者都被称为
5.如果某个观察者更改$scope.result值,您将获得第二个ng开关
您忘记了“false”和“true”周围的引号。您是否更改过
$scope.result
的值,或者只是将某些内容放入本地存储?只是更改本地存储值我真的不明白为什么在watch函数中添加了newValue,而在控制器代码中没有使用,请您解释一下?谢谢
// view
<div ng-switch on="getResultValue()">
<div ng-switch-when=false ui-sref="gotest" class="gotest-button"></div>
<div ng-switch-when=true ui-sref="menu" class="gotest-button"></div>
</div>