首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更新onsen-ui状态?

如何更新onsen-ui状态?
EN

Stack Overflow用户
提问于 2014-07-25 10:17:50
回答 1查看 828关注 0票数 0

我有一个简单的onsen-ui示例页面。它是在Monaca (http://monaca.mobi)中构建的,带有Onsen 1.0.4。

该页面包含两个onsen-ui按钮(ons-按钮),它们的可见性通过角js绑定javascript方法。按钮是相互排斥的,这意味着当按钮1可见时,按钮2必须被隐藏--反过来也是如此。

单击任一按钮时,将更改内部标志,并显示另一个按钮。

问题是:当页面第一次加载时,按钮的可见性无法正确应用。只有当用户手动单击其中一个按钮时,它才能工作。

作为一个反例,页面上也有两个普通的HTML按钮--这些按钮在页面加载后立即正确工作。

你能给我提点建议吗?加载页面时,是否必须手动强制刷新?

非常感谢您提前!

HTML代码:

代码语言:javascript
复制
<div ng-controller="AppCtrl">
  <strong>Click To Toggle</strong> <br>
  <button ng-click="startTracking()" ng-hide="isTrackingRunning()"><strong>On</strong></button>  
  <button ng-click="stopTracking()" ng-show="isTrackingRunning()"><strong>Off</strong></button>         

  <ons-button ng-click="startTracking()" ng-hide="isTrackingRunning()">Start Tracking</ons-button>
  <ons-button ng-click="stopTracking()" ng-show="isTrackingRunning()">Stop Tracking</ons-button>
</div>

JS代码:

代码语言:javascript
复制
angular.module('SotraMon', ['onsen.directives'])
 .controller('AppCtrl',['$scope', function($scope){
  var trackingRunning = false;

  $scope.isTrackingRunning = function() {
    console.log("getter called, returning " + trackingRunning);
    return trackingRunning;
  }

  $scope.startTracking = function() {
    trackingRunning = true;
  }

  $scope.stopTracking = function() {
    trackingRunning = false;
  }

  }]);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-29 07:44:42

我可以在Onsen 1.0.4中复制。一种解决方案是使用外部span标记s.t。

代码语言:javascript
复制
<span ng-hide="isTrackingRunning()"><ons-button ng-click="startTracking()">Start Tracking</ons-button></span>
<span ng-show="isTrackingRunning()"><ons-button ng-click="stopTracking()">Stop Tracking</ons-button></span>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24953437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档