检查AngularJS模板中的对象大小,做错了
Check object size in AngularJS template, doing it wrong?
我想在AngularJS模板中遍历myObject
这行不通:
<ul ng-if="Object.keys(myObject).length">
<li ng-repeat="(key, val) in myObject">
Value at key {{ key }} is: {{ val }}
</li>
</ul>
没有显示,我怀疑是因为$scope.Object
没有定义。
相反,我这样做:
在控制器/指令中:
$scope.sizeOf = function(obj) {
return Object.keys(obj).length;
};
模板中:
<ul ng-if="sizeOf(myObject)">
<li ng-repeat="(key, val) in myObject">
Value at key {{ key }} is: {{ val }}
</li>
</ul>
我不喜欢这个解决方案,因为这个功能在每个控制器或指令$scope
中都是重复的。
你有更干净的解决方案吗?
谢谢!
您可以在任何地方使用ngIf
指令中的Object
。只要把它的引用放在根作用域:
app.run(function($rootScope) {
$rootScope.Object = Object;
});
它也可以在独立的作用域中使用,比如在指令中。
乌利希期刊指南。在最新版本的Angular中,你不能再在表达式中引用Object
了。在这种情况下,您需要单独引用方法:
app.run(function($rootScope) {
$rootScope.keys = Object.keys;
});
,然后使用这个函数:
ng-if="keys(myObject).length"
在控制器中添加以下行
$scope.Object = Object;
那么您应该能够使用Object。
这难道还不够吗?
<ul ng-if="myObject">
<li ng-repeat="(key, val) in myObject">
Value at key {{ key }} is: {{ val }}
</li>
</ul>
该指令处理null、undefined和空对象。普朗克的演示。尝试将对象修改为undefined、null或填充value。
相关文章:
- reducers在redux中得到Function not Object,what'it’他错了
- 正在尝试为Docpad网站设置Lunr全文搜索插件.我做错了什么
- 谷歌关闭注释赢得'Don’不要告诉我;I’我错了
- Javascript对象/原型.我的理解错了吗
- 什么'这个随机数猜谜游戏错了
- 重新加载重复数据失败,我做错了什么
- Javascript,简化了对象转换
- 什么'这个谷歌脚本错了
- 柴如承诺即使错了也会过去
- 什么'Gulp错了
- 我做错了什么
- angular mongodb数组格式写错了
- JavaScript排序算法不起作用 - 任何明显的我做错了
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- JavaScript对象:我在这里做错了什么?
- AppendChild不工作!,从DOM元素对象继承.我做错了什么?
- Firebug:没有找到对象,我错了
- Javascript对象,我做错了什么
- 什么'如果我们在Node.js中扩展任何对象的原型,那就错了
- 检查AngularJS模板中的对象大小,做错了