0

いくつかの div 属性があり、一度に表示されるのはそのうちの 1 つだけです。私は今、このようなsthを持っています:

div(ng-show='x & y & z')
 ...

div(ng-show='(g || y) & z')
 ...

div(ng-show='k || z')
 ...

ng-switch には「on」属性が必要であり、ng-shows を評価するためにここでさまざまな関数を呼び出す必要があるため、より良いアプローチが何であるかはわかりません。しかし、これは間違いなく最高のパフォーマンスを提供しているとは言えません。最初の ng-show が TRUE と評価されるとすぐに、他の人を評価したくないからです。

何か提案はありますか?

4

1 に答える 1

0

オブジェクトがどのように見えるか、または何を作成しようとしているのかわからないので、ディレクティブを作成する例を示します...

var myApp = angular.module('myApp',[]);

myApp.controller('myCtrl', function ($scope) {
    $scope.letters = { 
      x: true,
      y: true,
      z: true,
      g: false,
      k: false
    };
});

myApp.directive('checkLetters', function() {
    return {
        restrict: 'E',
        scope: { letters: '=' },
        template: '<div>X is {{letters.x}}, but K is {{letters.k}}</div>'
    };
});

あなたのHTMLは、このようにページにディレクティブを持つだけです...

<body ng-controller="myCtrl">
  <check-letters letters="letters"></check-letters>
</body>

独自のテンプレートをインラインで作成することも、テンプレート用の HTML ページを作成して必要に応じて作成することもできます。

ここにあなたがチェックアウトするためのプランクがあります.

于 2015-11-07T13:38:39.413 に答える