2015-03-31 100 views
0

我是新来的ui路由器和努力与儿童页面。ui路由器和子页面

我有一个UI处理所有页面变化的视图。 我有一个页面,名为帐户,它接受一个名为的参数:accountNumber。国家建立这样的:

$stateProvider.state('account', { 
    url: "/account/:accountNumber", 
    templateUrl: 'app/account/account.tpl.html', 
    controller: 'AccountController', 
    controllerAs: 'controller', 
    data: { 
     requireLogin: true 
    } 
}); 

现在我想创建下的URL /帐号/坐在一个页面:使用accountNumber /股,但我不能让它正常工作。 我加了这样的状态:

$stateProvider.state('account.stock', { 
    url: "/stock", 
    templateUrl: 'app/account/stock/stock.tpl.html', 
    controller: 'StockController', 
    controllerAs: 'controller', 
    data: { 
     requireLogin: true 
    } 
}); 

,并改变了我的连结此:

<a class="tile box-shadow" ui-sref="account.stock" tile coloured-tile> 
    <i class="fa fa-spinner"></i> 
    <span class="title">Stock enquiry</span> 
</a> 

但是,当我按一下按钮没有任何负载,即使当我悬停在链接它显示了正确的URL。

所以我尝试这样的:

$stateProvider.state('stock', { 
    url: "/account/:accountNumber/stock", 
    templateUrl: 'app/account/stock/stock.tpl.html', 
    controller: 'StockController', 
    controllerAs: 'controller', 
    data: { 
     requireLogin: true 
    } 
}); 

但是当我点击我的链接,地址栏看起来是这样的:

/帐户//股票

这是工作注意到我的链接是这样的:

<a class="tile box-shadow" ui-sref="stock" tile coloured-tile> 
    <i class="fa fa-spinner"></i> 
    <span class="title">Stock enquiry</span> 
</a> 

有谁知道解决方案?

+0

它应该是'ui-sref =“stock({'accountNumber':1})”' – 2015-03-31 09:09:13

+0

你有app/account/account.tpl里面的ui-view。HTML,让孩子的观点可以显示自己? – bahadir 2015-03-31 09:09:29

回答

1
$stateProvider.state('account', { 
    url: "/account/:accountNumber", 
    templateUrl: 'app/account/account.tpl.html', 
    controller: 'AccountController', 
    controllerAs: 'controller', 
    data: { 
     requireLogin: true 
    } 
}); 

在上述状态下,您的accontNumber为Url参数。因此,在它的子状态中,您需要提及该参数。

因此,当您需要加载account.stock状态时,您需要传递帐号。

你的网址应该像/account/101/stock。假设这里是你的帐号。

所以在按钮上单击传递参数在json中。像

ui-sref="account.stock({accountNumber: 101})" 
在HTML模板

这里

<a class="tile box-shadow" ui-sref="account.stock({accountNumber: YOUR_SCOPE_VARIABLE_OR_STATIC_ACC_NO})" tile coloured-tile> 
    <i class="fa fa-spinner"></i> 
    <span class="title">Stock enquiry</span> 
</a> 
0

正如我在评论说,你是直接访问子状态,但父状态有accountNumber参数,您需要将其传递到自己的状态调用形成正确urlui-sref="account.stock({'accountNumber': 1})"

标记

<a class="tile box-shadow" ui-sref="account.stock({'accountNumber': 1})" tile coloured-tile> 
    <i class="fa fa-spinner"></i> 
    <span class="title">Stock enquiry</span> 
</a>