我们能在AngularJs中有嵌套的
吗?

20 浏览
0 Comments

我们能在AngularJs中有嵌套的
吗?

我有一个特定的要求,需要动态绑定视图。

默认情况下,该模块只有一个月的数据,从1-5月-2016到30-5月-2016。一旦用户滚动页面,它应该获取上一个月的数据,以此类推。

我想按以下结构绑定数据,如何在AngularJS中实现。

我可以有嵌套的ng-view,给我每个月的html代码,或者我们可以在单个视图中实现吗。

我想动态生成每个月的内容,并在同一个div中进行绑定。

我想知道像这样的模板设计:

0
0 Comments

可以在AngularJS中使用嵌套的div ng-view吗?

在AngularJS中,我们可以使用ng-view指令来定义一个容器,用于展示不同的视图。然而,有时候我们希望在一个视图中嵌套另一个视图,即在一个div ng-view中再嵌套一个div ng-view。那么,是否可以实现这样的嵌套呢?

答案是不能直接实现。ng-view指令只能在页面中存在一次,并且不能嵌套在其他的ng-view中。这是因为ng-view指令是用于定义根视图的,它负责将不同的视图插入到页面中的对应位置。

然而,我们可以通过使用ui-router插件来实现嵌套的div ng-view。ui-router是一个基于AngularJS的插件,它提供了更强大的路由功能,包括多个和/或嵌套视图的支持。

使用ui-router插件,我们可以定义一个包含多个视图的父级状态,并在该父级状态下定义子状态。然后,我们可以在父级状态对应的视图中嵌套子状态对应的视图。

下面是一个使用ui-router插件实现嵌套的div ng-view的示例:

首先,我们需要引入ui-router插件的相关文件,可以通过在页面中添加以下代码来实现:


接下来,我们需要在我们的AngularJS应用中引入ui.router模块,可以通过在应用的主模块中添加以下代码来实现:

angular.module('myApp', ['ui.router']);

然后,我们可以在config函数中配置ui-router的路由规则,定义父级状态和子状态,以及它们对应的视图。下面是一个示例配置:

angular.module('myApp')
    .config(function($stateProvider) {
        $stateProvider
            .state('parent', {
                url: '/parent',
                templateUrl: 'parent.html'
            })
            .state('parent.child', {
                url: '/child',
                templateUrl: 'child.html'
            });
    });

在上面的示例中,我们定义了一个名为"parent"的父级状态和一个名为"parent.child"的子状态。父级状态对应的视图为parent.html,子状态对应的视图为child.html。

最后,我们可以在页面中使用嵌套的div ng-view来展示父级状态和子状态对应的视图。下面是一个示例页面:

在上面的示例中,我们使用了一个div ng-app来定义AngularJS应用,然后在该div中使用了ui-view指令来展示父级状态和子状态对应的视图。

通过以上的配置和代码,我们就可以实现在AngularJS中使用嵌套的div ng-view了。这样,我们就可以在一个视图中嵌套另一个视图,并且可以在每个视图中分别使用不同的控制器和模板。

希望以上内容对你有帮助!如果你对这个问题有更多的疑问,可以参考上面提供的链接,其中包含了更详细的讨论和解决方案。

0
0 Comments

(可以在AngularJs中嵌套使用div ng-view吗?)这个问题是因为在AngularJs中使用div ng-view进行嵌套时遇到了问题。解决方法是使用ui-router来进行路由,它已经成为Angular 1.x路由的事实标准解决方案。

在AngularJs中,ng-view指令用于指定一个视图容器,用于展示不同的页面内容。通常情况下,我们只使用一个ng-view指令来展示整个页面的内容。但是,有时候我们希望在一个页面中嵌套使用多个div ng-view来展示不同的子页面内容。

然而,AngularJs并不支持直接嵌套使用多个div ng-view。当我们在一个div ng-view内部再嵌套使用另一个div ng-view时,AngularJs会报错并且无法正常工作。

为了解决这个问题,我们可以使用ui-router来替代ng-route进行路由。ui-router是由angular-ui团队开发的一个强大的路由框架,它提供了更多的灵活性和功能,可以满足更复杂的路由需求。

使用ui-router,我们可以通过定义不同的状态(state)来管理路由。每个状态对应一个视图,并且可以嵌套使用。在每个视图中,我们可以使用ui-view指令来展示对应的子视图内容。

下面是使用ui-router进行路由的示例代码:

angular.module('myApp', ['ui.router'])
.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider
    .state('home', {
      url: '/',
      templateUrl: 'home.html'
    })
    .state('about', {
      url: '/about',
      templateUrl: 'about.html'
    })
    .state('products', {
      url: '/products',
      templateUrl: 'products.html'
    })
    .state('products.details', {
      url: '/:productId',
      templateUrl: 'productDetails.html',
      controller: 'ProductDetailsController'
    });
  $urlRouterProvider.otherwise('/');
});

在上面的代码中,我们使用ui-view指令来展示不同状态对应的视图。在嵌套的情况下,我们可以在父状态中定义子状态,并在对应的视图中使用ui-view指令嵌套展示子视图内容。

通过使用ui-router,我们可以实现在AngularJs中嵌套使用多个div ng-view的需求,而不会遇到原生ng-route的限制。

0