Tag: angular ui router

如何使用ui-view而不是ng-view使用ng-animate?

我正在使用angularJS v1.2的angular-ui-router,并希望实现自定义页面转换。 我怎样才能用ng-animate与ui-view(来自angular-ui-router )而不是ng-view(这将是标准的方式)? 有关ng-view的参考,请参阅AngularJS 1.2中的Remastered Animation 。 编辑:我已经尝试了两个不同的angular度版本:v1.2.0-rc.2和v1.2.0-rc.3build议在评论中,但似乎都没有把戏。 我想我可能会做错什么? 这里是HTML: <div ui-view class="slide"></div> 和CSS: .slide { width:1024px; height:768px; } .slide.ng-enter, .slide.ng-leave { -webkit-transition:0.5s linear all; -moz-transition:0.5s linear all; -o-transition:0.5s linear all; transition:0.5s linear all; border: 1px solid blue; } .slide.ng-enter.ng-enter-active { border: 1px solid red; } 我添加了前面提到的示例的JSfiddle 。 尽pipe如此,将这个示例展开来覆盖ng-view和ui-view会很好,但是我不确定如何获取ng / ui-view和部分到JSfiddle。

如何使用angular度ui路由器来隐藏和显示视图?

想象一下,一个应用程序有一个List页面,比如一个显示用户列表的表格。 表格的每一行都有一个名为“编辑”的button,点击该button后,浏览器的右侧出现一个右侧面板,编辑该用户的内容。 当表单被保存或closures时,右侧面板消失。 在编辑状态input和退出时,如何让Angular UI Router自动显示/隐藏右侧面板? 默认情况下,模板将被添加和删除,但容器本身仍然存在于屏幕上。 在UI路由器的演示应用程序中,html布局具有为所有子状态分配的空白空间,但在构build的应用程序中,如果不使用它们,我真的很喜欢隐藏面板,甚至可以将整个屏幕滑入随着国家进入和退出而退出。 我猜测我必须使用ng-show和ng-hide才能做到这一点。 我如何通过UI路由器来解决这个问题? 谢谢!

离子历史是如何工作的,何时创build非根堆栈?

我正在使用离子 v1.0.0,不明白由$ionicHistorypipe理的平行历史的作品。 特别是在Android设备上,当使用(以前称为硬件)后退button时,我的Angular应用程序有时performance得很奇怪,我想了解原因。 (例如:导航返回打开由$ionicGoBack()很久以前closures的视图) 对我来说,似乎某些UI路由器导航创build新的历史堆栈,而其他人将历史项目放在根历史logging中,即使从状态到子状态应该附加到logging状态IMO的历史。 问题 任何人都可以解释在哪些情况下, ui-sref或$state.go(…)将历史logging添加到新创build的堆栈中? 他们什么时候被追加到root ? 模态是以一种特殊的方式对待吗? 对不起,没有更具体的,但应用程序是相当复杂的,我不知道如何孤立在一个单一的问题。 也许我错过了一个很好的文档…

当我使用async / awaitfunction时,Angular UI路由器不处理parsing函数?

我一直在试图根据这篇文章呈现某个与状态和组件相关的模板 在我的项目下运行dev-server它一切正常,当我执行$state.go("home")组件模板加载我期望,但是当我在testing环境中这样做,这是行不通的。 在testing之前,当我使用“模板”而不是“组件”与ui-router一起使用“旧模式”时,执行$rootScope.$digest()就足以在<div ui-view></div>但使用这种新的方式,这不工作了。 我究竟做错了什么? 编辑 :我一直试图深入了解这个问题,我看到这个问题是与HTTP请求完成。 也许这与我的承诺使用async / awaitparsingcallback的方式有关。 请检查服务: 服务 export class TodoService { constructor($http, BASE_URL) { this.http = $http; this.url = `${BASE_URL}/todos` } async getTodos() { const apiResponse = await this.http.get(this.url) return apiResponse.data.todos } } 路由器 import '@uirouter/angularjs' export function routes($stateProvider, $locationProvider) { $locationProvider.html5Mode({ enabled: true, requireBase: false, rewriteLinks: true, }) $stateProvider […]

加载相对的templateUrl

我一直在试图find创build模块化,可扩展的angular度应用程序的最佳方式。 我真的很喜欢angular-boilerplate , angular-app这样的项目结构,其中所有相关的文件都通过partials和directives的特性组合在一起。 project |– partial | |– partial.js | |– partial.html | |– partial.css | |– partial.spec.js 但是,在所有这些示例中,模板URL都是相对于基本url加载的,而不是相对于当前文件: angular.module('account', []) .config(function($stateProvider) { $stateProvider.state('account', { url: '/account', templateUrl: 'main/account/account.tpl.html', // this is not very modular controller: 'AccountCtrl', }); }) 这不是非常模块化的,在大型项目中可能难以维护。 我需要记住每次移动这些模块时都要更改templateUrlpath。 这将是很好,如果有一种方法来加载相对于当前文件的模板,如: templateUrl: './account.tpl.html' 有没有办法做这样的angular?

用ui路由器公开当前状态名称

我试图实现一个语言切换器,如果用户从“en”端的任何给定页面点击“de”,它将把它们带到“de”端的那个页面。 如果我console.dir $状态参数,它暴露了我想要的值与给定的$状态的“当前”属性。 如果我尝试console.dir $ state.current专注于我想要的值,它只会给父状态属性(我当前视图嵌套)。 我目前的想法是,我在URL / EN /内容,dynamic我可以让我的郎导航dynamic地加载到适当的目的地点的某种数据属性,挑选那些自定义指令,我会发起一个“去”并设置我的首选angular度翻译的语言价值。 现在的关键问题是暴露$状态名称 – 再次,当浏览$状态当前对象给出我想要的值,但$ current.state直接只给父状态。 如果任何人有一个更好的build议,如何做到这一点(有针对性的 – 没有定制cookies垃圾),我很乐意采取build议。 谢谢! 更新! 代码样本: 我的状态的对象引用: var urlStates = { en: { home: { name: 'home', url: '/en', templateUrl: 'templates/'+lang+'/home.html', abstract: 'true' }, home_highlights: { name:'home.highlights', url: '', templateUrl: 'templates/'+lang+'/home.highlights.html' }, home_social: { name: 'home.social', url: '/social', templateUrl: 'templates/'+lang+'/home.social.html' }, […]

停止angularUI路由器导航,直到承诺解决

我想防止一些闪烁发生时,轨道devise超时发生,但angular度不知道,直到从资源的下一个授权错误。 会发生什么是模板呈现,一些AJAX调用资源发生,然后我们被redirect到轨道deviselogin。 我宁愿做一个ping导轨上的每一个状态的变化,如果rails会话过期,那么我会立即redirect之前,模板呈现。 UI路由器已解决,可以放在每一个路线,但似乎并不DRY。 我拥有的是这个。 但是这个承诺在国家已经过渡之前是不会解决的。 $rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams){ //check that user is logged in $http.get('/api/ping').success(function(data){ if (data.signed_in) { $scope.signedIn = true; } else { window.location.href = '/rails/devise/login_path' } }) }); 在新模板呈现之前,如何根据promise的结果中断状态转换?

Angularjs $ state在新标签中打开链接

我试图使用$ state.go函数实现“在新标签中打开链接”function。 如果有这样的话,那将是非常棒的: $state.go('routeHere', { parameter1 : "parameter" }, { reload : true, newtab : true // or smth like target : "_blank" }); 有没有办法使用AngularJS来做到这一点? 谢谢, 亚历克斯

ionic framework$ state.go('app.home'); 在页面上添加我想要去(如何删除它)的返回button?

我有侧边栏菜单的应用程序。 我在第二页,我呼叫控制器function,redirect到第一页使用: $state.go('app.home'); 问题是,在这个页面上现在显示的是后退button,旁边的侧边栏菜单图标,见下图: 有人可以告诉我如何否认添加回到已分配侧边栏菜单的页面的button? 谢谢你的帮助。 app.js与路由器configuration如下: angular.module('Test', ['ionic', 'config', 'Test', 'LocalStorageModule']) .run(function($ionicPlatform) { $ionicPlatform.ready(function() { // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard // for form inputs) if(window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); } if(window.StatusBar) { // org.apache.cordova.statusbar required StatusBar.styleDefault(); } }); }) .config(function($stateProvider, $urlRouterProvider, localStorageServiceProvider) […]

Angular – UI路由器 – 以编程方式添加状态

有没有办法编程添加状态到$ stateProvider模块configuration后,例如服务? 为了给这个问题增加更多的背景,我有两种方法可以解决: 尝试强制在模块configuration中定义的状态重新加载,问题是状态有reloadOnSearch设置为false ,所以当我尝试$ state.go('state.name',{新:帕拉姆},{重新加载:真正}); 没有任何反应,任何想法? 国家定义 .state('index.resource.view', { url: "/:resourceName/view?pageNumber&pageSize&orderBy&search", templateUrl: "/resourceAdministration/views/view.html", controller: "resourceViewCtrl", reloadOnSearch: false, }) 尝试以编程方式添加我需要从服务加载状态,以便路由可以正常工作。 如果可能的话,我宁愿select第一个选项。