我是AngularJS
的新手,假设我有
<ul>
<li ng-repeat="todo in todos">
<span> ...</span>
每个todo
都是某个对象,让我们说{&#34;标题&#34;:&#34;某些标题&#34;,&#34;说明&#34;:& #34;一些描述&#34;}。我现在想要在todo
标记内发生某些更改事件时检索此span
的整个值。如果它过于简单就提前对不起......
答案 0 :(得分:0)
最简单,最直接的方法是:
<ul>
<li ng-repeat="todo in todos">
<span>{{todo.title}}</span>
<span>{{todo.description}}</span>
<input type="text" ng-model="todo" />
请注意,我添加了一个输入文本字段,只是为了展示当您将对象分配给指令的属性时,不会使用双花括号包围角度对象。
答案 1 :(得分:0)
如果跨度导致事件发生,您可以执行以下操作......
<ul>
<li ng-repeat="todo in todos">
<span ng-click="doSomething(todo)"> ...</span>
答案 2 :(得分:0)
您可以随时使用$watch并注册侦听器回调,以便在您的范围(对象)发生变化时执行。
示例:
HTML:
<div ng-app="App" ng-controller="ctrl">
<div>
<ul>
<li ng-repeat="todo in todos">
<span><input type="text" ng-model="todo.title">{{todo.title}}</span>
</li>
<ui>
my event : {{myEvent}}
</div>
JS:
var app=angular.module('App', []);
function ctrl($scope) {
$scope.myEvent="";
$scope.todos = [
{"title": "some title1", "description":"some description1"},
{"title": "some title2", "description":"some description2"},
{"title": "some title3", "description":"some description3"}
]
$scope.$watch('todos', function (newVal) {
$scope.myEvent=newVal;
}, true);
}
答案 3 :(得分:0)
如果你想更改对象更好地使用输入元素而不是span标签,那么指令'ng-change'会在用户更改内容时触发更改,请参阅此plunker http://plnkr.co/edit/HQgGB1HRAjUE7EVxiJZ5?p=preview