如何在没有ng-switch的情况下处理角度ng-show中的if-else情况

时间:2015-11-05 09:04:25

标签: javascript angularjs angularjs-ng-show

我有几个div属性,一次只显示其中一个属性。我现在有这样的事情:

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时,我不想评估其他人

你有什么建议吗?

1 个答案:

答案 0 :(得分: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页面并根据需要进行构建。

这里有一个plunk供您查看。