AngularJS引用父控制器

时间:2013-04-19 11:17:43

标签: angularjs angularjs-scope

我正在尝试实现以下行为。我正在使用ng-inculde包含一个模板,我正在做这样的事情:{{something}}

我希望'something'与父控制器范围内的另一个变量进行双重绑定,并且能够设置父控制器范围的属性名称。因此,在一个包含,某些东西将引用苹果和其他包括,某些东西将引用橙色。

我做的是,我写了一个自定义控制器,它有一个lookAt(v)方法,我在div的ng-init中调用这个方法,我使用ng-include和ng-controller。在这个方法中,我试图设置绑定但它不起作用。我假设,父范围已经定义了该变量。

这是我的代码:

mod.controller('FooController', ['$scope', function($scope) {
    $scope.lookAt = function (variable) {
        $scope.something=$scope[variable];
    }
}]);

感谢您提供有关如何解决此问题的任何建议。

2 个答案:

答案 0 :(得分:0)

在使用ng-include引入的模板中,而不是{{something}}使用something(),其中something方法是在父控制器上定义的。

如果需要,您仍然可以初始化变量名称:

mod.controller('FooController', ['$scope', function($scope) {
    $scope.initMethod = function(variable) {
       $scope.variable = variable;
    }
    $scope.something = function () {
        return $scope[$scope.variable];
    }
}]);

答案 1 :(得分:0)

当使用Controller As Syntax时,你不能只在消费者(child的构造函数)中执行$scope.$parent,你需要解决父类的数据对象,如:$scope.$parent.vmParent