我的范围$scope.model = { ... };
上有一个页面和一个模型
我将页面上的值与模型上的值绑定,这很好。我有一个嵌套在该模型中的地址,为了这个例子,我们可以说
$ scope.model = {visits:[{date:...,address:[{...},...]}, ......],...};
我需要在div中的某处写下第一次访问第一个地址的所有信息。我知道我可以输入所有字段,如model.visits[0].addresses[0].Zip
等,但我需要输出model.visits[0].addresses[0]
中的5个字段。我想,最简单的方法是?我考虑过把
<div ng-init="a = model.visits[0].addresses[0]">{{a.Zip}}...</div>
然后只需访问所有类似的属性。我真正想要的是,它不是在a
范围内创建新属性,除非我可以将a
的范围缩小到只有一个div。
这有可能吗?
澄清:我知道我可以重做我的模型或者在模型本身上移动数据,但这只是我遇到过多次的事情,我真的想知道是否有问题的解决方案像这样。答案 0 :(得分:2)
您可以创建一个小指令,在您想要的元素上创建一个新范围:
...
angular.module('yourApp').directive('newScope', function () {
return {scope: true};
});
然后你可以像这样使用它:
<div ng-init="tmp=model.visits[0].addresses[0]" new-scope>{{tmp.Zip}}...</div>
现在,tmp
属性将附加到newScope
指令创建的新作用域,不会影响父作用域。
另请参阅此 short demo 。