0

我正在尝试使用默认结构将angularjs设置到我的 Rails 4 应用程序中,Angular Seed但我很难理解这一点。

我的布局由两部分组成。第一部分(左侧)包含产品列表:

%ul
  %li{ 'ng-repeat' => 'product in products | filter:search' }
    %a{ 'ng-click' => 'open(tier)' }
      %img{ 'ng-src' => '{{ tier.logo }}' }

另一部分在这里显示产品的详细信息,但也显示其他任何产品版本,以及创建新产品的表格。那时我真的很困惑。到目前为止,我一直在使用ng-switchhelper 来获取右侧的产品详细信息:

%ng-switch{ 'on' => 'details()' }
  %div{ 'ng-switch-when' => "true" }
    %header
      %span
        .h3 {{ opened.name }}
    .panel-body
      .tab-content
        .tab-pane.active
          %section.scrollable
            %img{ 'ng-src' => '{{ opened.logo_large }}' }

我的控制器看起来像这样:

controller('TiersController', ['$scope', '$routeParams', 'Tiers', 'ngProgress', '$timeout', function($scope, $routeParams, Tiers, ngProgress, $timeout) {
  $scope.tiers = Tiers.query();

  $scope.open = function(tier){
    if( $scope.isOpen(tier) ){
      $scope.opened = undefined;
    }else{
      $scope.opened = tier;
    }
  };

  $scope.isOpen = function(tier){
    return $scope.opened === tier;
  };

  $scope.details = function(){
    return $scope.opened !== undefined;
  };

  $scope.close = function(){
    $scope.opened = undefined;
  };
}])

到目前为止,左侧(产品列表)和右侧(详细信息)都在同一个视图文件中。当我单击产品并显示其详细信息时,它工作正常。但是如果我想在右侧注入另一个视图,比如表单呢?如何在此产品布局中插入某种部分?问题是,出于可维护性目的,我不想将所有不同的视图写入同一个文件。

希望我很清楚。非常感谢你的帮助

4

1 回答 1

0

使用angular ui-router https://github.com/angular-ui/ui-router解决的问题

于 2015-05-18T04:20:26.797 回答