我的问题是指令在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>
答案 0 :(得分:0)
你的函数需要实际返回一些东西,否则它总会返回undefined(这是假的),这就是你的ng-if
没有被触发的原因。
例如:
lolModule.controller("ctrl",function($scope){
$scope.testExpr=function(e){
console.log("bool=",e);
return e == 'true';
}
});