3

私が知っている限りでは、これは Ionic 固有の問題というよりも AngularJS の問題である可能性があります。ビューの 1 つにボタンがあります。

<button class="button button-clear button-block button-positive" ui-sref="register">
    Register
 </button>

そして、コントローラーには、ローカルストレージから取得したこの変数があります。これは true または false であり、値に応じて非表示にする必要があります。

app.controller('loginController', ['$scope', '$localstorage',
  function($scope, $localstorage) {

  // Check if the user has already requested a register, and if true, hide
  // the 'Register' button
  if ($localstorage.get("registrationRequested", false) === true) {
    // How do I do this?
  }

}]);

おそらく最初の質問は、コントローラーからそのように dom を操作することはベスト プラクティスでしょうか? そうでない場合は、どこでどのように行うのですか? コントローラーで問題なく実行できる場合、そのボタンを参照して非表示にするにはどうすればよいですか?

4

4 に答える 4

9

ボタン タグにディレクティブを追加ng-hideします。

<button ng-hide=registered class="button button-clear button-block button-positive" ui-sref="register">
    Register
</button>

JS ファイルで、$scopetoでこの値を宣言しfalse、 に設定しtrueてボタンを非表示にします。

app.controller('loginController', ['$scope', '$localstorage',
    function($scope, $localstorage) {
        $scope.registered = false;

        // Check if the user has already requested a register, and if true, hide
        // the 'Register' button
        if ($localstorage.get("registrationRequested", false) === true) {
            $scope.registered = true;
        }
    }
]);
于 2015-08-13T11:49:17.103 に答える
0

data-ng-hide非表示または表示に使用する必要があります。に設定した後、trueまたはfalse次のようにスコープ設定を適用する必要があります。 $scope.$apply();

于 2016-10-04T07:32:43.500 に答える
-1

ng-if を使用して、ボタンを次のように表示することもできます。

<button class="button button-bar button-positive" ng-if="resgisterBtn" ui-sref="register">Register</button>

コントローラーで:

 app.controller('loginController', ['$scope', '$localstorage',
      function($scope, $localstorage) {
    if ($localstorage.get("registrationRequested", false) === true) {
         $scope.resgisterBtn = true;
      }
      else{
         $scope.resgisterBtn = false;
      }
    }]);

ng-show と ng-if の違いは、ng-show は DOM で要素を存続させますが、ng-if は反対のことを行います

于 2015-08-13T12:47:55.703 に答える