처음 AngularJS, HTML, Javascript 및 Ionic을 사용하여 사용자가 앱의 특정 페이지를 처음 입력 할 때 메시지를 표시하는 올바른 방법을 찾습니다. 그 이후에는이 메시지를 표시하지 않아야합니다.처음으로 페이지를 입력 할 때 버튼을 표시하는 방법은 무엇입니까?
현재 메시지를 표시하고 ng-show를 사용하여 '처음'플래그를 확인하는 버튼을 사용하고 있습니다. 이 플래그는 부울 'true'또는 'false'값으로 로컬에 저장되며 window.localStorage를 사용하여이 플래그를 사용합니다. 이 방법이 정확하고 그 다음 인 경우, 내 컨트롤러 내에서 존재하는 첫 번째 시간 플래그에 대한 코드는 다음과 같습니다 있는지 알고 싶습니다 : 나는 더와 버튼을 다음 한
내 페이지에서$scope.getFT = function(){
return window.localStorage['firstTime'] || 0;
};
$scope.setFT = function(value){
window.localStorage['firstTime'] = 1;
};
$scope.checkFT = function(){
// Checks whether or not this is the first time (FT) the user entered this page
if(($scope.getFT() === 0 || $scope.getFT() === 'undefined')
{// This is the first time navigating in this page, show message & set local flag to true
console.log("checkFT: true, value of FT: " + window.localStorage['FT'] + ', now setting FT to true');
$scope.setFT(1);
return true;
}
else
{// Not first time navigating through here, do not show first time message
console.log("checkFT: false, value of FT: " + window.localStorage['FT']);
return false;
}
};
내 디버그 창에서
<ion-header-bar>
<!-- some code here -->
<ion-header-bar>
<ion-content>
<!-- First Time Button -->
<button ng-show='checkFT()' class="firstTime">
<img src=".../img/firstTimeImage.png"/>
</button>
</ion-scroll>
<ion-list ng-repeat="i in array">
<!-- . . . . more code below . . . . -->
</ion-list>
</ion-scroll>
</ion-content>
나는 내 응용 프로그램이 내가 페이지를 입력 처음이지만, 페이지로드가 완료되기 전에 어떤 이유로 기능이 약 9 번 호출되는 것을 식별하는 참조 : 아래의 코드, 그래서 같은 . 그것은 어떤 종류의 루프가 아니지만 아래 목록의 요소 목록에 대한 코드 논리를 갖고 있지만 그 목록은 단추와 독립적이며 그 반대도 마찬가지입니다.
그래서 제가 궁금해하는 이유는 무엇입니까? 정확히 여기서 내가 잘못하고있는 것은 무엇입니까? 내 논리가 단순히 부정확하고, 내 접근법이 완전히 잘못 되었습니까, 아니면 제가 맞습니까? 단순히 브라우저로드를 여러 번 처리하는 것입니까?
'ng-show'와 같은 기능을 사용하지 않는 것이 가장 좋습니다. 앱이로드되고 대신 변수에 바인딩되면 범위 변수를 한 번 설정하십시오. 각도 별 다이제스트주기는 다양한 지시문이 처리되는 동안 여러 번 실행될 수 있습니다. – charlietfl
그것은 각도가이 동작을 가졌음을 인식하지 못했던 많은 의미가 있습니다. AngularJS를 사용하여로드 할 때 필요한 메소드를 찾으려고 노력할 것입니다. 이에 대한 문서/예제 접근법을 개인적으로 권장합니까? – AGE
컨트롤러 자체는 부하시처럼 컨트롤러를 설정해야합니다. – charlietfl