私はリストのテーブル(別名商品)を含むページを持っています。 編集リストボタンを各行に追加する必要があります。このボタンをクリックすると、1つのリスト(商品)を編集できる新しいページに移動します。テーブル行からアイテムへの角度ルーティング
So:Listings>リストを編集
HTMLはテンプレートです。私のSPAのコンテンツエリアにあるHTMLスニペットです。 (私のページが正しいコントローラにリンクされていることを確認する必要があるため、これを言及します。スニペット/テンプレートにはng-controller =がありません)。
とにかく、これは私です編集リストにルートの掲載を行うしようとしている:
listings.html:
<table class="table table-striped table-bordered table-hover table-checkable order-column"
id="listings-table"
datatable="ng"
dt-options="listingVm.dtOptions"
dt-column-defs="listingVm.dtColumnDefs">
<tr ng-repeat="listing in listingVm.listings">
<td>{{ listing.Title }}</td>
<td>{{ listing.Description }}</td>
<!-- my addition: -->
<td><a ng-click="listingVm.editListing(listing.Id)"><i class="fa fa-edit"></i></a></td>
</tr>
</table>
listingsController.js:
vm.editListing = function (listingId) {
// I'll figure out how to get the data later
//$http.get('/api/Listing/').then(function (response) {
// console.log(response);
$location.path('/editlisting/' + listingId);
//}, function (response) {
//});
}
router.js:
.state('layout.listing', {
url: '/listing',
templateUrl: '/Content/js/apps/store/views/listing.html',
controller: 'listingController',
controllerAs: 'listingVm',
data: { pageTitle: 'Listings' }
})
// I added this:
.state('layout.editlisting', {
url: '/editlisting/:id',
templateUrl: '/Content/js/apps/store/views/edit_listing.html',
controller: 'editListingController',
controllerAs: 'listingVm',
data: { pageTitle: 'Edit Listing' }
})
私はええと...私がこだわっています。私はこれがどのように機能すべきかわからない。
これはです。は、デフォルトのダッシュボードページ:/#/ダッシュボードにすぐにリダイレクトされます。これは、その名前でページが見つからなかった場合に実行すると思われます。 (はでエラーなし、デフォルトへの再ルーティングのみ)
ルーティングの2つの方法のマングリングを使用しているようですね。
例えば、ルータに状態がある場合は、次のようにしてください:
<a ui-sref="layout.editlisting">
トライ$のlocation.url(「/ editlisting /」+ listingIdを)。 – gyc
Thx。結局のところ私の問題はルータではなかったようだが、それはその道にある。 – DaveC426913
別の簡単な質問:editListingページにあるリストIDを取得するにはどうすればよいですか?私はそれをURLクエリーストリングから引き出しますか? – DaveC426913