我正在尝试使用默认结构将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-switch
helper 来获取右侧的产品详细信息:
%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;
};
}])
到目前为止,左侧(产品列表)和右侧(详细信息)都在同一个视图文件中。当我单击产品并显示其详细信息时,它工作正常。但是如果我想在右侧注入另一个视图,比如表单呢?如何在此产品布局中插入某种部分?问题是,出于可维护性目的,我不想将所有不同的视图写入同一个文件。
希望我很清楚。非常感谢你的帮助