0

我有几个 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,我就不想评估其他人

你有什么建议吗?

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 回答