0

次の動作を実装しようとしています。私は次のようなことをしている ng-inculde を使用してテンプレートを含めています: {{something}}

その「何か」に、親コントローラーのスコープ内の別の変数との二重バインディングが必要であり、親コントローラーのスコープのプロパティの名前を設定できるようにします。したがって、1 つのインクルードでは何かがリンゴを参照し、別のインクルードでは何かがオレンジを参照します。

私がしているのは、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

Controller As Syntax を使用する場合、コンシューマー (子のコンストラクター) で行うことはできません。$scope.$parent次のように、親のデータ オブジェクトに対処する必要があります$scope.$parent.vmParent

于 2015-02-19T15:39:48.417 に答える
0

メソッドが親コントローラーで定義されているuse の{{something}}代わりに、ng-include で取り込まれたテンプレート。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 に答える