一尘不染

Ng-init通过函数

angularjs

如您所知,可以如下初始化对象:

<div ng-init="friends = [{name:'John', phone:'555-1276'},
                         {name:'Mary', phone:'800-BIG-MARY'},
                         {name:'Mike', phone:'555-4321'},
                         {name:'Adam', phone:'555-5678'},
                         {name:'Julie', phone:'555-8765'},
                         {name:'Juliette', phone:'555-5678'}]"></div>

是否可以通过函数定义类似这样的对象:

<div ng-init="init()">

我的目标实际上是从API中获取对象,并通过ng-repeat将它们显示在列表中


阅读 386

收藏
2020-07-04

共1个答案

一尘不染

文件ng- init将采用任何表达方式。因此,是的,只要关联的作用域定义了一个称为的函数,您就可以做上面的事情init()(我也为乐趣进行了验证)。

请注意,该文档说,这ng-init实际上仅旨在用于别名ng-repeat

ngInit用于别名化ngRepeat的特殊属性的唯一适当用法,如下面的演示所示。除了这种情况,您应该使用控制器而不是ngInit来初始化作用域上的值。

最后,请注意,您可以在创建控制器时简单地初始化变量。因此,实际上根本不需要使用ng-init。例如:

var myApp = angular.module('myApp', []);

myApp.controller('myController', ['$scope', function($scope){

  $scope.init = function() {
    $scope.a = 'Apples';
    $scope.b = 'Bees';
    $scope.c = 'Zebras';
  };
  // runs once per controller instantiation
  $scope.init();

}]);
2020-07-04