0

デフォルトの構造を使用してRails 4アプリにangularjsをセットアップしようとしていますが、これを理解するのに苦労しています。Angular Seed

私のレイアウトは 2 つの部分で構成されています。最初の部分 (左側の部分) には、製品のリストが含まれています。

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

もう 1 つの部分は、製品の詳細を表示するためのものですが、製品版としての他の部分と、新しい製品を作成するためのフォームも表示されます。その時点で、私は本当に混乱しています。これまでのところ、ng-switch右側に製品の詳細を表示するためにヘルパーを使用していました。

%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 に答える