간단한 onsen-ui 샘플 페이지가 있습니다. 온천 UI 1.0.4와 함께 Monaca (http://monaca.mobi)에 내장되어 있습니다.onsen-ui 상태를 업데이트하는 방법은 무엇입니까?
페이지에 두 개의 onsen-ui 버튼 (ons-button)이 포함되어 있으며, 표시 여부는 각도 j를 통해 javascript 방식으로 제한됩니다. 버튼은 상호 배타적입니다. 즉, 버튼 1이 보이면 버튼 2를 숨겨야하고 다른 방법은 무시해야합니다.
두 단추 중 하나를 클릭하면 내부 플래그가 변경되고 다른 단추가 표시됩니다.
문제는 : 페이지가 처음로드 될 때 버튼의 가시성이 올바르게 적용되지 않습니다. 사용자가 단추 중 하나를 수동으로 클릭 할 때만 작동합니다.
반대로, 페이지에 두 개의 일반 HTML 버튼이 있습니다.이 버튼은 페이지가로드되는 즉시 올바르게 작동합니다.
어떤 조언을 제공 할 수 있습니까? 페이지를로드 할 때 수동으로 새로 고침을 강제해야합니까?
미리 감사드립니다.
HTML 코드 :
<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 코드 :
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;
}
}]);
나는 Onsen UI 1.1.0에서 테스트 했으므로 문제를 재현 할 수 없습니다. Onsen UI 1.0.4 또는 이전 버전을 사용합니까? iOS 7.1과 Android 4.2를 확인합니다. – KNaito
Monaca (http://monaca.mobi) 내부에서 실행되는 Onsen UI 1.0.4입니다. 버전을 나가서 죄송합니다. (이 정보를 포함하도록 원래 게시글을 업데이트했습니다.) –