Angular JS Controller范围以及私有函数和变量

时间:2017-07-20 10:03:47

标签: scope controller parent

我遇到了问题,几个月前我在角度方面做了一个小应用程序,但是为了扩展我对角度的了解,我决定为我的代码添加一个功能和复杂性。 所以,我没有注入模块和控制器,我使用app config和ng-route。 现在我有这样的事情:

var app = angular.module('myApp',['ngRoute']);
app.config(appConfig);
app.controller('TestController', ['$http', TestController])

function appConfig($routeProvider){
     $routeProvider.when('/', {     
         templateUrl: './test.html',
         controller: 'TestController',
         controllerAs:  'my'
    });
} 
function TestController($http ) {
    this.statusForm = 'Incompleto';
    a();
}
function a(){
    statusForm='Finalizado';
    ¿HOW DO I ACCES STATUSFORM TO CHANGE ITS VALUE IN TestController?
}

所以这是我的问题,我如何从没有$ scope的cotroller内部调用的私有函数进行更改。 反正有没有提到testcontroller函数的范围?

1 个答案:

答案 0 :(得分:0)

最后我找到了问题的答案。我觉得有点羞耻,因为答案有点简单。我应该比我做得更快更容易。 好的,我正在解释它,原来我有这个:

function TestController($http ) {
    this.statusForm = 'Incompleto';
    a();
}
function a(){
    statusForm='Finalizado';
    ¿HOW DO I ACCES STATUSFORM TO CHANGE ITS VALUE IN TestController?
}

问题在于,在使用$ scope之前,状态形式在函数a中不是accessiblo,而是在它可访问之前。

function TestController($http ) {
    this.statusForm = 'Incompleto';
    a(**this**);
}
function a(**padre**){
    **padre**.statusForm='Finalizado';
}

所以我用这种方式改变了它(见**之间的变化),现在它可以工作了。我以为我会有一些不公平的方式来不将参数发送到函数“a”,但我没有找到任何。 任何方式这种方式工作。 如果有人有同样的疑问,我希望这有帮助。问候。