我正在创建一个具有详细视图的应用,该视图在主视图上方显示为模式窗口。每个都有一个URL,但如果直接从URL访问详细信息视图,我希望它显示为主视图。这个比喻在许多应用程序中使用,但是pinterest引脚是一个典型的例子(尝试点击一个引脚,然后重新加载页面以查看差异)。
从我收集的内容来看,常规路由器的功能不足以解决这个问题,因此我已经编写了自己的指令来替换ng-view。这是一个简化的代码示例:
app.directive('myModalView', ['$route', function($route) {
return {
link: function(scope, elem, attr) {
var data = { modal: false };
var first = true;
scope.data = data;
scope.$on('$routeChangeSuccess', function() {
var current = $route.current.$$route;
var template = current.templateUrl;
data.modal = current.modal && !first;
data.modal ? data.modalTemplate = template : data.mainTemplate = template;
first = false;
});
},
template: '<div ng-include src="data.mainTemplate"></div>' +
'<div ng-show="data.modal" ng-include src="data.modalTemplate"></div>',
};
}]);
两个问题:
谢谢!