如何简化AngularJS中ng-init内重复变量的三元运算符代码?
简化AngularJS ng-init中的重复表达式
当然可以简化!你原来的三元表达式本质是实现“若data.postingType为真值则使用它,否则用空字符串”的逻辑,借助JavaScript的逻辑或运算符||,就能直接去掉重复的data.postingType:
ng-init="data.postingType || ''"
不过要注意:如果你的ng-init是为了给某个变量赋值(比如想把处理后的值存到一个新变量里),得补上变量声明,否则这个表达式只是做了求值操作,不会保存结果:
ng-init="processedPostingType = data.postingType || ''"
再说说你尝试的写法为什么无效:PrintExistData并不是当前作用域中定义的变量或常量,AngularJS无法识别这个标识符,自然会失效。你原本想表达的“返回已存在的data.postingType”,直接写它本身就可以,而逻辑或运算符刚好帮你省略了重复书写的部分。
另外,从AngularJS的最佳实践角度来说,建议尽量把这类逻辑移到控制器中处理,而不是写在模板里:
// 在你的控制器内 $scope.data.postingType = $scope.data.postingType || '';
这样模板会更简洁,业务逻辑也更集中,后续维护起来更方便。
内容的提问来源于stack exchange,提问作者Mr world wide
相关产品推荐
相关产品推荐

