如何在指令之前执行ng-if或使用除ng-if之外的其他内容?

时间:2014-07-21 09:12:44

标签: javascript angularjs

我的问题是指令在ng-if之前执行。
如何在指令之前设法执行ng-if?

我做错了吗?我应该使用除了ng之外的其他东西吗?如果要显示/隐藏div?

http://plnkr.co/edit/Q2wdSnTJHVQbD3fK3O8N?p=preview

的script.js

lolModule = angular.module('lolModule',[]);
lolModule.directive('initTest', function(){
    return function($scope, $element){
        console.log("test",$element.html());
    };
});

lolModule.controller("ctrl",function($scope){
  $scope.testExpr=function(e){
    console.log("bool=",e);
    return e;
  }
});

的index.html

<!DOCTYPE html>
<html data-ng-app="lolModule">

  <head>
    <script src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
    <script src="script.js"></script>
  </head>
  <body data-ng-controller="ctrl">
    <div init-Test>
      <div ng-if="testExpr('true')">if is true</div>
      <div ng-if="testExpr('false')">if is true</div>
    </div>
  </body>

</html>

1 个答案:

答案 0 :(得分:0)

你的函数需要实际返回一些东西,否则它总会返回undefined(这是假的),这就是你的ng-if没有被触发的原因。

例如:

lolModule.controller("ctrl",function($scope){
  $scope.testExpr=function(e){
    console.log("bool=",e);
    return e == 'true';
  }
});

请在此处查看:http://plnkr.co/edit/gPizAfnD0BrmHFAfcNyu?p=preview