【发布时间】:2014-08-29 15:23:32
【问题描述】:
我有一种情况需要动态更改控制器,以便相应地影响范围变量。一般结构:
<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>
我看到here 可以在ng-repeat 内完成。可以在外面做吗?
换句话说,我可以告诉 Angular 将其作为变量而不是字符串文字来读取吗?
【问题讨论】:
-
我认为这个问题具有误导性。你真的想动态设置控制器,还是只是改变 $scope 的内容?
-
someScopeVar应该是控制器函数,你现在用什么值? -
@Grundy,你是对的。我为控制器使用了一个字符串文字,它是在范围之外定义的,而不是将控制器本身分配给
someScopeVal。请作为答案发布 -
@Grundy,这适用于初始分配,但是当我尝试更改它以响应用户点击事件时,它保持原样
-
你应该尝试深入观察
ui-router这里有一些(最新)链接到超级基本资源stackoverflow.com/a/20581135/1679310。此功能实际上是一个状态机,旨在根据状态更改更改应用程序的某些部分(可能依赖于 url 但并非必须)。您将只管理您的状态,这些状态可能有许多带有相关控制器的内部视图。更改状态 - 将注入具有不同控制器的相同视图(模板)......真的请尝试观察;)
标签: javascript angularjs