自1.3.0-beta.10版本以来,AngularJS有一个新功能:"懒惰的一次性绑定".
简单的表达式可以作为前缀::,告诉角度在首次评估表达式后停止观看.给出的常见示例如下:
<div>{{::user.name}}</div>
Run Code Online (Sandbox Code Playgroud)
是否有类似以下表达式的语法?
<div ng-if="user.isSomething && user.isSomethingElse"></div>
<div ng-class="{classNameFoo: user.isSomething}"></div>
Run Code Online (Sandbox Code Playgroud) 这是Angular中的错误还是我遗漏了一些东西:
从指令的模板调用函数表明该函数执行了11次!用templateurl,22次!! 用字符串模板.
angular.module('testDirective', [])
.directive('myDirective', function() {
return {
scope:{},
template: '{{increment()}} {{count}}',
controller: function($scope) {
$scope.count = 0;
$scope.increment = function() {
$scope.count += 1;
};
}
};
})
Run Code Online (Sandbox Code Playgroud)
HTML:
<body ng-app="testDirective">
<my-directive></my-directive>
</body>
Run Code Online (Sandbox Code Playgroud)
结果:
22
Run Code Online (Sandbox Code Playgroud)
这是一个包含template和templateUrl方法的Plunker.
例如,当在转发器中涉及方法调用时,这是一个非常严重的问题,这最终会在相同的方法上调用相同的方法.
有人可以对此有所了解吗?
我有一个数组,有5个字符串值兴奋,快乐,中立,悲伤,愤怒
我使用ngClass和ngFor来简化html,所以我不必为每个值重复5x.
问题是ngClass语句非常笨重,我找不到合适的方法来简化它.有什么方法可以缩短它吗?
<mat-icon *ngFor="let smiley of smileys" svgIcon="emote_{{smiley}}"
[ngClass]="{ happy: smiley === 'happy', sad: smiley === 'sad', neutral: smiley === 'neutral', angry: smiley === 'angry', excited: smiley === 'excited'}" (click)="selected(smiley, $event)"></mat-icon>
Run Code Online (Sandbox Code Playgroud)
先感谢您!
angularjs ×2
angular ×1
binding ×1
directive ×1
javascript ×1
ng-class ×1
ngfor ×1
typescript ×1