将参数添加到ng

我有一个简单的循环与ng-repeat像这样:

<li ng-repeat='task in tasks'>
  <p> {{task.name}}
  <button ng-click="removeTask({{task.id}})">remove</button>
</li>

控制器$scope.removeTask(taskID)有一个函数。

据我所知,Angular将首先渲染视图并用一个数字替换插值{{task.id}} ,然后在点击事件中,将评估ng-click字符串。

在这种情况下, ng-click完全获得预期的结果,即: ng-click="removeTask(5)". 然而......它没有做任何事情。

当然,我可以编写代码从$tasks数组或甚至DOM获取task.id ,但这看起来不像Angular方式。

那么,如何在ng-repeat循环内添加动态内容到ng-click指令呢?


代替

<button ng-click="removeTask({{task.id}})">remove</button>

做这个:

<button ng-click="removeTask(task.id)">remove</button>

请看这个小提琴:

http://jsfiddle.net/JSWorld/Hp4W7/34/


有一件事情真的让我感到困扰,当时我在浏览器中检查了这个html,而不是将它扩展为如下形式:

<button ng-click="removeTask(1234)">remove</button>

我看见:

<button ng-click="removeTask(task.id)">remove</button>

但是,后者的作品!

这是因为你处于“角度世界”,当在ng-click =“”时,角度准备好了解task.id,因为你在模型中。 不需要使用数据绑定,如{{}}。

此外,如果您想传递任务对象本身,您可以:

<button ng-click="removeTask(task)">remove</button>

另外值得注意的是,对于在搜索中发现这种情况的人来说,这是......

<div ng-repeat="button in buttons" class="bb-button" ng-click="goTo(button.path)">
  <div class="bb-button-label">{{ button.label }}</div>
  <div class="bb-button-description">{{ button.description }}</div>
</div>

请注意ng-click的值。 传递给goTo()的参数是绑定对象( button )属性的字符串,但不包含在引号中。 看起来像AngularJS为我们处理。 我挂了几分钟。

链接地址: http://www.djcxy.com/p/77911.html

上一篇: Adding parameter to ng

下一篇: Understanding the transclude option of directive definition?