相关疑难解决方法(0)

在运行时动态分配ng-controller

我有一种情况需要动态更改控制器,以便相应地影响范围变量.一般结构:

<div ng-controller="GameController">
   // some general HTML which fits all types of games
    <div ng-controller="someScopeVar"> // Type of game
      // some game-type-specific ng-models that should respond to the change of controller, i.e scope
    </div
</div>
Run Code Online (Sandbox Code Playgroud)

我在这里看到它可以在一个内部完成ng-repeat.可以在它之外完成吗?换句话说,我可以告诉角度将其读作变量而不是字符串文字吗?

javascript angularjs

7
推荐指数
1
解决办法
4390
查看次数

从AngularJS控制器,如何解析模块中定义的另一个控制器功能(动态ng-controller)?

自解释小提琴:http://jsfiddle.net/5FG2n/6/

我需要根据其名称作为字符串动态选择要在运行时使用的控制器.该字符串将从配置对象中读取.

在下面的代码我目前已InnerCtrlAsLocalVariable分配给$scope.dynamicCtrl.我怎么分配InnerCtrlFromModule给财产?

视图:

<div ng-app='app' ng-controller='OuterCtrl'>
    <div ng-controller='dynamicCtrl'>
        {{message}}
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

var InnerCtrlAsLocalVariable = ['$scope',
    function($scope) {
        $scope.message = 'from controller as local variable - do not want'
    }
];

angular.module('app', []) 

    .controller('OuterCtrl', ['$scope', 

        function($scope) {
            // Instead of doing this...
            $scope.dynamicCtrl = InnerCtrlAsLocalVariable;

            // ...I want to do something like this:
            // $scope.dynamicCtrl = resolveCtrl('InnerCtrlFromModule');                                               
        }
    ])

    .controller('InnerCtrlFromModule', ['$scope',
        function($scope) {
            $scope.message = 'from controller defined in module …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-scope angularjs-controller

2
推荐指数
1
解决办法
4170
查看次数