ngIf将评估变量作为表达式的一部分

时间:2013-08-24 16:31:07

标签: angularjs

我正在尝试执行以下操作:

ng-if="newItem.location == 'belowLesson{{lesson.Id}}'"

它只适用于ng-show。

换句话说,如果我将newItem.location设置为等于字符串'belowLesson28'并且该范围内的课程.Id是28,我希望这可以工作。我不想使用ng-show,因为它会拖累应用程序(我在ng-repeat中使用了很多次)。

我会把一个plunkr放在一起,只是觉得我早点把它放在那里,以防它在语法或其他东西上有明显的修复。


这是一个傻瓜: http://plnkr.co/edit/UFpTQ6zsvlCWVep5Ai5I?p=preview

1 个答案:

答案 0 :(得分:4)

您的plunkr中的第一个问题是如何设置当前项目。而不是

<button ng-click="chosenItem = {{item}}">

应该是

<button ng-click="chosenItem = item">

第二个问题是ng-if创建自己的范围,直接在控制器范围中更改值不会更改先前在ng-id范围内存储的值(通过继承)。因此,您应该将所选项目存储在子对象中,如以下plunkr所示:http://plnkr.co/edit/qOoZtnCqPuwvP3fGoUxw?p=preview