在控制器中,如何操作ng-repeat中显示的对象属性?

时间:2018-01-23 14:39:49

标签: javascript angularjs

使用AngularJS,我创建了一个显示对象属性的ng-repeat。我想带root.TooltipText并能够在控制器中访问它。

这是HTML:

  <div id="root">
    <div ng-repeat="root in rootresults">
      <button type="button" class="btn btn-primary" ng-click="showpagetwo(root.Title, root.ID)" ng-if="root.Location == null">{{root.Title}}
        <span class="tooltiptextsmall tooltip-rightsmall" ng-if="root.TooltipSize =='Small'">{{root.TooltipText}}</span>
        <span class="tooltiptextnormal tooltip-rightnormal" ng-if="root.TooltipSize =='Normal'">{{root.TooltipText}}</span>
      </button>
    </div>
  </div>

这是我的控制器:

var app = angular.module('wizardApp', []);
app.controller('MainCtrl', function($scope, $http, $q){
  $(document).ready(function() {
    $scope.getRootList();
  });

  $scope.prepContext = function(url,listname,query){
    var path = url + "/_api/web/lists/getbytitle('" + listname + "')/items" + query;
    return path;
  }

  $scope.getRootList = function() {
    rootList = $http({
      method: 'GET',
      url: this.prepContext(siteOrigin+"/divisions/testing","SupportList","?$orderBy=Title&$filter=RootItem eq 'Yes'"),
      headers: {
        "Accept": "application/json; odata=verbose"
      }
    }).then(function(data) {
      //$("#articleSection").fadeIn(2000);
      console.log(data.data.d.results);
      $scope.rootresults = data.data.d.results;
    });
  };
});

记录data.data.d.results日志:

{
  "0":  {
    "Title": "Test1",
    "TooltipText": "Test1",
    "TooltipSize": "Small"
    },
  "1":  {
    "Title": "Test2",
    "TooltipText": "Test2",
    "TooltipSize": "Small"
    },
  ...
}

如何访问控制器中的对象属性?

1 个答案:

答案 0 :(得分:0)

修复结果后,如果console.log(data.data.d.results);获得预期数据,它将正常工作。

但你必须改变

  

ng-if="root.Location == null"

  

ng-if="!root.Location"

原因是root.Location以undefined的形式出现,与null不同。