我正在使用自定义数据为我的州添加一个人类可读的名称,如下所示:
.state('data', {
parent: 'week',
url: '/data',
displayName: 'Data Overview',
然后我可以在模板中使用它:
<h1>Showing {{$state.current.displayName}}</h1>
哪个好。但是现在我想创建一个带参数的路由,并在displayName中使用该参数:
.state('upload', {
parent: 'week',
url: '/upload/:level',
displayName: 'Data Upload for ' + level,
...
但是我无法弄清楚使用level
中displayName
的值来访问template<typename T>
T test(string type)
{
int integer = 42;
float floateger = 42.42;
if (type == "int")
return integer;
if (type == "float")
return floateger;
}
int main()
{
int integer = test("int");
cout << "INTEGER: " << integer << endl;
}
的正确语法。
答案 0 :(得分:1)
static
数据(建议放在data : {}
内 - 不要直接在根状态设置中 - 静态数据。所以:
如何动态设置这些数据有 NO 方式。例如。基于
$stateParams
。这些设置预计将在.config()
阶段定义,而不是在.run()
中进行评估(在与其他人的比较中,例如resolve,templateUrl ...)
参见文档:
您可以将自定义数据附加到状态对象 (我们建议您使用 数据属性,以避免冲突)。
// Example shows an object-based state and a string-based state var contacts = { name: 'contacts', templateUrl: 'contacts.html', data: { customData1: 5, customData2: "blue" } } $stateProvider .state(contacts) .state('contacts.list', { templateUrl: 'contacts.list.html', data: { customData1: 44, customData2: "red" } })
通过上面的示例说明您可以访问如下数据:
function Ctrl($state){ console.log($state.current.data.customData1) // outputs 5; console.log($state.current.data.customData2) // outputs "blue"; }