我正在尝试从函数内的函数中获取值:
控制器
$scope.vm = {};
function myFunc(){
$scope.vm.hello = 'Hello';
function myFunction(){
$scope.vm.world = 'world';
}
}
myFunc();
查看
<p>{{vm.hello}} {{vm.world}}</p>
如何才能显示“Hello world”?
答案 0 :(得分:1)
我认为你正试图实现一种叫做“封闭”的东西。如果是这样,请将控制器修改为:
app.controller('MainCtrl', function($scope) {
$scope.vm = {};
function myFunc(){
$scope.vm.hello = 'Hello';
return function () {
$scope.vm.world = 'world';
}
}
var hello = myFunc(), // invokes outer function
world = hello(); // invokes inner function
console.log($scope.vm);
});
在您的代码中,无法在myFunction()
方法之外调用内部函数myFunc()
,因为其范围受此外部方法的限制。你当然可以直接在外部方法中调用它,或者更好 - 立即使内部函数:
function myFunc(){
$scope.vm.hello = 'Hello';
(function myFunction(){
$scope.vm.world = 'world';
})();
}