检索一些AngularJS对象值

时间:2014-03-25 23:03:32

标签: javascript angularjs

我是AngularJS的新手,假设我有

<ul>
  <li ng-repeat="todo in todos">
     <span> ...</span>

每个todo都是某个对象,让我们说{&#34;标题&#34;:&#34;某些标题&#34;,&#34;说明&#34;:& #34;一些描述&#34;}。我现在想要在todo标记内发生某些更改事件时检索此span的整个值。如果它过于简单就提前对不起......

4 个答案:

答案 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);

 }

实例:http://jsfiddle.net/choroshin/vLJ92/

答案 3 :(得分:0)

如果你想更改对象更好地使用输入元素而不是span标签,那么指令'ng-change'会在用户更改内容时触发更改,请参阅此plunker http://plnkr.co/edit/HQgGB1HRAjUE7EVxiJZ5?p=preview