Javascript Ng if:使用普通表达式而不是函数调用,会有区别吗?
我找不到答案,所以我把它带到这里 如果我使用Javascript Ng if:使用普通表达式而不是函数调用,会有区别吗?,javascript,angularjs,angularjs-ng-if,Javascript,Angularjs,Angularjs Ng If,我找不到答案,所以我把它带到这里 如果我使用 $scope.isAllowed = true; 我知道如果我使用第一个选项,Angular2+有一个优势,但这是否也适用于AngularJs? 有一次,我可以在中找到{{::isAllowed},但我认为在这种情况下不起作用 我还发现ng if的绑定使它成为了一个观察者,这可以归结为$scope.$watch函数。但这并不是问题所在 有人对这个话题有更深入的了解吗?没有。两者都会导致创建一个观察者。(我的意思是ofc的速度稍微快一点,但这可以
$scope.isAllowed = true;
我知道如果我使用第一个选项,Angular2+有一个优势,但这是否也适用于AngularJs?
有一次,我可以在中找到{{::isAllowed}
,但我认为在这种情况下不起作用
我还发现ng if的绑定使它成为了一个观察者,这可以归结为$scope.$watch
函数。但这并不是问题所在
有人对这个话题有更深入的了解吗?没有。两者都会导致创建一个观察者。(我的意思是ofc的速度稍微快一点,但这可以忽略不计。) 当您关心代码样式和代码可维护性时,您可以看到差异 例如,当你的页面速度变慢时,你想知道-发生了什么事?然后打开模板:
这只是一个观察者
这是。。。您需要打开控制器文件以查看它是什么
现在假设你有50个这样的函数,其中一些函数调用另一个函数,它们调用工厂中的函数,等等。可能很难理解到底是什么导致页面变慢
所以短表达式的一般规则应该是-ng-if中没有函数,ng-show-ng-bind,{{}等等。
如果您有smth(如ng If=“conditionA&&(conditionB | | | conditionC)| |(conditionD&&!conditionQ)”
您可能希望将其提取到一个函数中,以便于可读性和测试
<div ng-if="isAllowed"></div>
$scope.isAllowed = function() {
return true;
};
<div ng-if="isAllowed()"></div>