传递angularjs的参数

时间:2016-09-14 00:08:44

标签: javascript angularjs reference

我正在学习Angular并尝试剖析以下代码:

phone.js

    angular
  .module('phone', [])
  .factory('phoneService', phoneService);

function phoneService() {
  var service = {
    getAll: getAll
  };

  function getAll() {
    phones = [
    {
      id: 0,
      name: 'Luke Skywalker',
      number: 111-222-333,

    },
    {
      id: 1,
      name: 'R2D2',
      number: 111-222-444,
    },
  ]
    return phones;
  }

  return service;
}

app.js

angular
  .module('app', ['phone'])
  .controller('AppController', AppController); 

function AppController ($scope, phoneService) {
    $scope.phones = phoneService.getAll();
    $scope.title = "Customer Phones";
  }

我对$scopephoneService的使用很感兴趣。它们是对AppController外部的实际变量的引用。 $scope是AngularJS提供的变量,phoneService phone.js 中工厂名称的引用。我发现它们必须完全按照它们的名称命名,否则它们将不会引用具有该名称的实际名称。这是指向plunker code的链接。

我不明白这是如何在幕后工作的。我试图创建一个示例JavaScript,看看我是否可以将对全局变量的引用传递给函数,然后在函数内部访问它。正如预期的那样,它认为变量是未定义的。

var i = {name: 'Bob'};
TestHello(Hello);

function Hello(i)
{
  document.writeln("name is --" + i.name);
}

function TestHello(K)
{
    K();
}

链接以在js.do code

测试上述代码

所以,我的问题是什么使AngularJS代码将外部范围内的变量链接到与参数同名的传递?

0 个答案:

没有答案