假设我有以下3个Angular UI Router状态:
$stateProvider
.state('adminCompanies', {
abstract: true,
url: "/admin/companies",
template: '<div ui-view class="viewContainer" autoscroll="false" />'
})
.state('adminCompanies.list', {
url: "",
templateUrl: 'app/admin/companies/companies.list.html',
controller: 'AdminCompaniesController'
})
.state('adminCompanies.detail', {
url: "/:companyId",
templateUrl: 'app/admin/companies/companies.detail.html',
resolve: {
company: function(Model, $stateParams) {
return Model.get("/admin/companies", $stateParams.companyId);
}
},
controller: 'AdminCompanyDetailController'
})
如果adminCompanies
直接转换为,我该如何告诉Angular UI Router进入adminCompanies.list
状态?
理想情况下,我想要的是这样的:
$stateProvider.when('adminCompanies', 'adminCompanies.list');
然后,在我的代码中,我希望$ state.go(’adminCompanies’)等同于$ state.go(’adminCompanies.list’)
由于您的应用程序当前已设置,因此您不需要任何明确的html" target="_blank">逻辑。当子状态具有空url
属性时,它在其父状态变为活动的同时变为活动状态。子状态的任何模板都将插入到ui- view
父状态的模板提供的指令中。Angular UI 示例应用程序解决了这种类型的体系结构:当contacts
状态被导航到时,其模板提供了导航布局以及ui- view
其子状态的区别;因为contacts.list
状态的url
属性为""
,所以在contacts
导航到其父状态时会自动加载该状态。这记录在应用程序的注释中:
使用空URL表示此子状态在导航到其父URL时将变为活动状态。子状态的网址会自动附加到其父目录的网址中。因此,此状态的url为’/
contacts’(因为’/ contacts’+”)。
现在,假设出于某种原因,您 从未 希望您的父adminCompanies
国家成为活跃国家。在这种情况下,您可以使该状态成为
抽象
状态,如下所示:
$stateProvider
.state('adminCompanies', {
abstract: true,
url: "/admin/companies",
template: '<div ui-view class="viewContainer" autoscroll="false" />'
})
.state('adminCompanies.list', {
url: "/list",
templateUrl: 'app/admin/companies/companies.list.html',
controller: 'AdminCompaniesController'
})
.state('adminCompanies.detail', {
url: "/:companyId",
templateUrl: 'app/admin/companies/companies.detail.html',
resolve: {
company: function(Model, $stateParams) {
return Model.get("/admin/companies", $stateParams.companyId);
}
},
controller: 'AdminCompanyDetailController'
})
请注意abstract: true
第三行的加法和/list
for 的显式状态urladminCompanies.list
这告诉Angular-
UI,应该出于URL导航的目的将这种状态视为不存在。但是,当您导航到子状态时,它将仍然处于活动状态,因此它仍将使用您提供的URL为子状态的URL加上前缀。但是,如果您尝试从其他状态导航至该状态,则该状态就好像该状态不存在一样。因此,您还需要使用来添加对不匹配网址的处理$urlRouteProvider
。
基本的使用$urlRouteProvider
可能如下所示:
$urlRouterProvider.otherwise("/")
这只是将对不存在状态的所有调用重定向到URL为“
/”的状态。假设您有一个。但是,由于有人可能试图导航到列表视图,但又/admin/companies
直接导航到列表视图,因此您可能应该具有以下处理程序:
$urlRouterProvider.when("/admin/companies", "/admin/companies/list");
您使用哪一种取决于您的应用程序的体系结构,但似乎对于您当前的需求,您无需执行任何操作。如果您的规范发生更改,则抽象状态可能会派上用场。
接口说明 设置场景默认视角 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /api/viewpoint/1.0.0/setSceneDefault 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 dId string form 是 场景ID directionx number form 是 相机位置,从cam
问题内容: 我想仅使用CSS为标准window.confirm设置样式,而不使用任何其他JavaScript代码。可能吗 如果是的话,我该怎么办? 问题答案: 这不可能。浏览器使用平台的UI套件显示此窗口。它不在DOM中,在CSS或Javascript中也不可见,您无能为力。 但是,一些非常简单的jQuery代码可以解决问题。怎么样
我已经安装了nvm(ubuntu with zsh shell),有两个节点版本:V6.11.5和V9.0.0,并且nvm的默认版本是V9.0.0 每次需要更改节点版本时 我如何更改nvm版本默认值以定义V6.11.5?
问题内容: 我已经安装了具有两个节点版本的nvm(带有zsh shell的ubuntu):v6.11.5和v9.0.0,nvm中的默认版本为v9.0.0。 每次我需要更改节点版本时 如何更改nvm版本的默认值以定义v6.11.5? 问题答案: (此处为nvm维护者) 如果您希望将其固定到该特定版本。 您也可以。 无论哪种方式,您都需要升级到最新版本的(截至撰写本文时,v0.33.11)
我的数据有一个ATOM-XML表示,通过Spring MVC web服务返回。我使用JAXB进行序列化,我有许多名称空间,但我希望默认名称空间设置为Atom,不带前缀。下面是我到目前为止在中的内容,但是atom前缀被设置为NS3。 另外,我注意到chrome中显示的名称空间,而Firefox中没有。
问题内容: 我的UIPickerView有问题。我在欧盟AP和NA中有3个值。当我启动该应用程序时,似乎选择了EU,但是当我做出选择时,我只会返回,现在当我触摸UIPickerView时,EU值被选中,然后从NSLog中返回。 我的问题是: 当用户仅启动应用程序并且什么都不触摸时,如何定义默认值(不仅是标签),该值将被选中。 编辑: 这是我的代码来获取所选项目: 问题答案: TL:DR版本: 您没