Angular ui-router 1.0更改$ transition中的视图

时间:2017-08-28 14:15:42

标签: angularjs angular-ui-router

我希望有人帮助您了解如何在转换中更改视图。 我的问题是我需要动态加载视图。所以我创建了一个新视图(这似乎有效):

var viewname = 'view-'+Date.now();
var element = angular.element(document.querySelector('#view-container'));
var scope = element.scope();
var elementString = '<div id="'+viewname+'" ui-view="'+viewname+'" class="viewunique"></div>';
$compile(element.append(elementString))(scope);

这会将视图添加到$view变量,似乎正在运行。

我的问题是:如何在状态转换中使用此新视图。我尝试使用$ transition $。$ to(),如:

$transitions.onStart( {}, function($transition$) {
    $transition$.$to().views = {
        templateUrl : templateUrl
    };
});

其中viewname是创建的视图的名称,templateUrl是正确的模板。模板将拥有自己的控制器和东西。这将覆盖此状态的视图,但无法正常工作或执行任何操作。

不知何故,我想在转换到此状态时更改状态的视图,以便使用动态创建的视图。这可能吗? 有人知道如何做到这一点吗?

1 个答案:

答案 0 :(得分:0)

好的,我做了一些你想要的研究。如果我理解正确,您希望在状态更改期间更改视图,每个视图都有自己的范围和控制器。

在我看来,您希望多个州相互运行。也许你可以看看ui-router-extras: https://github.com/christopherthielen/ui-router-extras

这个包允许你使用并行状态和嵌套状态,我相信这是你想要/需要的。

https://christopherthielen.github.io/ui-router-extras/#/home处获取战利品以获取更多信息和工作示例。