如何在角度js中在控制器内创建控制器

时间:2017-07-20 09:37:19

标签: angularjs

我想在角度Js中在控制器内创建一个控制器。但我的代码不起作用。请帮帮我。

控制器:

Test User Has Order Invoice
Expected: True
But was: False
下面是我的html正文:

app.controller('MainController',function($rootScope,$scope){
    console.log('MainController Created');
    $scope.test = "Success";

    app.controller('InnerController',function($scope){
        console.log('Inside the InnerController');
        console.log($scope.test);
    })
});

3 个答案:

答案 0 :(得分:1)

你应该把你的内部控制器声明放在MainController之外,因为它们都需要在解析html之前初始化

app.controller('MainController',function($rootScope,$scope){
    console.log('MainController Created');
    $scope.test = "Success";
});

app.controller('InnerController',function($scope){
    console.log('Inside the InnerController');
    console.log($scope.test);
});

答案 1 :(得分:1)

像你做的html中的

是一个内部控制器的父控制器 但在角度上它是控制器与他自己一样:

app.controller('MainController',function($rootScope,$scope){
    console.log('MainController Created');
    $scope.test = "Success";
});


 app.controller('InnerController',function($scope){
       console.log('Inside the InnerController');
       console.laog($scope.test);
   })

答案 2 :(得分:0)

您无法在另一个控制器内创建控制器。但是您可以将DOM元素与不同的控制器嵌套在一起。所以你应该改变你的控制器'声明:

app.controller('MainController',function($rootScope,$scope){
    console.log('MainController Created');
    $scope.test = "Success";
});

app.controller('InnerController',function($scope){
    console.log('Inside the InnerController');
    console.log($scope.test);
});

请注意test中仍然可以使用InnerController