0

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

我希望那个“东西”与父控制器范围内的另一个变量具有双重绑定,并能够设置父控制器范围的属性名称。因此,在一个包含中,某些内容将引用一个苹果,而在另一个包含上,某些内容将引用一个橙色。

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

这是我的代码:

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

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

4

2 回答 2

0

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

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

mod.controller('FooController', ['$scope', function($scope) {
    $scope.initMethod = function(variable) {
       $scope.variable = variable;
    }
    $scope.something = function () {
        return $scope[$scope.variable];
    }
}]);
于 2013-04-19T14:33:41.960 回答
0

当使用 Controller As Syntax 时,您不能只$scope.$parent在消费者(子构造函数)中做,您需要像这样处理父数据对象:$scope.$parent.vmParent.

于 2015-02-19T15:39:48.417 回答