AngularJS — 从控制器显式返回一个值
AngularJS — Explicitly returning a value from a controller
前几天我 运行 进入了下面的代码块,我试图弄清楚为什么作者可能选择 return init();
而不是像
这样的事情
$scope.init = function() {...};
并用 ng-click
或其他方式调用它。
这是代码:
myApp.controller("PlaylistCtrl", [
"$scope", "tracksService", function($scope, tracksService) {
var init;
init = function() {
$scope.addTrack("Jay-Z - 99 Problems");
return $scope.tracks = $scope.getTracks();
};
$scope.getTracks = function() {
return tracksService.tracks();
};
$scope.addTrack = function(trackTitle) {
if (trackTitle !== "") {
return tracksService.addTrack(trackTitle);
}
};
return init();
}
]);
所以现在的问题是:从控制器返回值的目的是什么?它利用了哪些附加功能?这是否导致 init()
一旦启动控制器就成为 运行 ?如果不是,这里的具体目的是什么?任何帮助表示赞赏。谢谢。
它没有具体含义,删除 return
也不会改变任何内容。
如果你看看其他函数,开发者似乎有从每个函数中 return 的习惯,即使在没有必要的时候也是如此。
这可能只是一种习惯。在某些情况下,它可以帮助开发人员确保这是初始化块的末尾,将函数声明放在下面,例如在这个小示例中:
// Initialization
var foo = 'bar';
doFoo();
doBar();
return; // <- end of declarative block
// Methods
function doFoo() { ... }
function doBar() { ... }
前几天我 运行 进入了下面的代码块,我试图弄清楚为什么作者可能选择 return init();
而不是像
$scope.init = function() {...};
并用 ng-click
或其他方式调用它。
这是代码:
myApp.controller("PlaylistCtrl", [
"$scope", "tracksService", function($scope, tracksService) {
var init;
init = function() {
$scope.addTrack("Jay-Z - 99 Problems");
return $scope.tracks = $scope.getTracks();
};
$scope.getTracks = function() {
return tracksService.tracks();
};
$scope.addTrack = function(trackTitle) {
if (trackTitle !== "") {
return tracksService.addTrack(trackTitle);
}
};
return init();
}
]);
所以现在的问题是:从控制器返回值的目的是什么?它利用了哪些附加功能?这是否导致 init()
一旦启动控制器就成为 运行 ?如果不是,这里的具体目的是什么?任何帮助表示赞赏。谢谢。
它没有具体含义,删除 return
也不会改变任何内容。
如果你看看其他函数,开发者似乎有从每个函数中 return 的习惯,即使在没有必要的时候也是如此。
这可能只是一种习惯。在某些情况下,它可以帮助开发人员确保这是初始化块的末尾,将函数声明放在下面,例如在这个小示例中:
// Initialization
var foo = 'bar';
doFoo();
doBar();
return; // <- end of declarative block
// Methods
function doFoo() { ... }
function doBar() { ... }