分配控制器以动态查看

时间:2014-05-26 17:58:07

标签: javascript angularjs

使用AngularJS时遇到了一些问题。我实现了一个动态路由,它加载了一个主控制器" PagesController"并且该控制器根据URL信息加载各自的视图。太好了!

但是我知道我想编译视图并分配控制器而不需要" ng-controller"。因为我不想将视图分配给单个控制器。

我的动态路线:

app.config( ['$routeProvider', 
    function( $routeProvider ) {
        $routeProvider
            .when( '/:pagename', { template: 'blank', controller: 'PagesController' })
    }
]);

我的主控制器:

app.controller( 'PagesController', [ '$scope', '$routeParams', '$compile', '$scope',
    function( $scope, $routeParams, $compile, http, $controller, $rootScope ) {

        $http.get( 'app/pth/' + $routeParams.pagename ).then( function ( view ) {

            $( '#views' ).html( $compile( view.data )( $scope ) );
        });

    }] 
);

常规控制器:

app.controller( 'TestCtr', [function() {

}]);

我的观点:

<div ng-controller="TestCtr" >
    <h2>Welcome!</h2>
</div>

我想要什么(没有ng-controller的相同视图):

<div>
    <h2>Welcome!</h2>
</div>

这是一个简单的例子,但基本上我想要的是在不久的将来在几个控制器上下文中使用上面的视图。 谢谢!

1 个答案:

答案 0 :(得分:1)

将ng-controller绑定到范围变量或使用ng-include。请注意,动态控制器需要一个$ destroy处理程序(我不太了解它,所以我只留下这个引用(What is the lifecycle of an AngularJS Controller?)。

相关问题