AngularJS控制器返回值

时间:2014-05-26 21:05:26

标签: javascript angularjs controller

'控制器为' AngularJS的技术由John Papa描述为:

myApp.controller("MainCtrl", [
    function () {
        var vm = this;  // convention - ViewModel
        vm.person = { name: "Bob" };
        return vm;
    }]);

return vm;行的目的是什么?代码在没有它的情况下工作。

1 个答案:

答案 0 :(得分:6)

当angular创建你的控制器时,它会在你传入的函数上使用new关键字。因此,它将使用你传入的构造函数构造一个新对象。使用构造函数构造对象总是返回新创建的对象的实例。

有关构建过程的一些细节(参见this SO回答)

  1. 当返回的对象与this相同时,可以省略它,因为它将默认返回
  2. 如果返回一些原始类型,null或其他不同的东西(在其他SO答案中描述),也将返回this
  3. 如果返回实例,将返回对此实例的引用。