更改变量名称,如ng-repeat,但不重复?

时间:2015-01-08 22:57:22

标签: javascript angularjs angularjs-directive angularjs-scope

在我的应用中,我说$scope.item。在我的页面中,我有模板将其称为其他内容,例如$scope.product

在一个页面上,我需要将模型称为item,然后使用ng-include打开将其称为product的模板。

当我在数组中只有一个项目时,我做了ng-repeat="product in item"。现在我用一个对象取消了单个数组,它只是一个对象。如果我执行ng-repeat,它将对对象中的每个键/值对重复。不是我想要的。

有没有办法说ng-alias="item as product"或其他什么?

2 个答案:

答案 0 :(得分:1)

ngInit用于别名。

ng-init="item = product"

根据documentation

  

ngInit的唯一合适用途是对特殊属性进行别名处理   ngRepeat的内容,如下面的演示所示。除了这种情况,你应该   使用控制器而不是ngInit来初始化作用域上的值。

答案 1 :(得分:0)

如果是一次性绑定,你可以做

<... ng-init="product = item" ...>

然而,根据我的理解,你在哪里进行黑客攻击 - 重复播放目的而不需要重复。在这种情况下,ng-init仍然是一个可能会导致您以后遇到麻烦的黑客。

执行所需操作的正确方法是将模板放入指令中,并从指定项链接指令的product变量。即html看起来像这样:

<my-directive product="item"></my-directive>