2

NodeJs + AngularJS アプリケーションを作成しています。データベースに保存されているホテルのリストがあります。ホテル名に基づいて動的ルートを作成し、プロパティ ID に基づいて読み込み部分ビューを作成したいと考えています。

たとえば、私のデータベースには次のものがあります。

HotelID         HotelName                       

1               example hotel                   
2               second example hotel            
3               third example hotel                 

app.js で私はこのようなものが欲しい

var hotelierApp = angular.module('hotelierApp', ['ngRoute', 'ngCookies', 'pascalprecht.translate', 'hotelierApp.services', 'hotelierApp.directives', 'hotelierApp.filters', 'hotelierApp.controller']);
hotelierApp.run(function ($rootScope) {
$rootScope.langId = 1;
})
hotelierApp.config(['$routeProvider', '$locationProvider', '$translateProvider',
function ($routeProvider, $locationProvider, $translateProvider) {

    angular.forEach(hotels, function (hotel) {
  $routeProvider.when(hotel.name.replace(" ","-"), { templateUrl: 'partials/property', controller: propertyCtrl });
});

angular.forEach(reviews, function (review) { $routeProvider.when(review.title.replace(" ","-"), { templateUrl: 'partials/review', controller: reviewCtrl }); });

    $locationProvider.html5Mode(true);

    $translateProvider.useStaticFilesLoader({
        prefix: 'data/locale-',
        suffix: '.json'
    });
    $translateProvider.preferredLanguage('en');
    $translateProvider.useLocalStorage();
}

]);

ここで、Hotels/reviews は、API 呼び出しを行うことによってデータベースから取得されるリストになります。また、対応する ID をルート パラメータとしてコントローラーに渡したいと考えています。

アプリケーションには、データベースからルートを作成する必要がある他の多くのセクションがあります。

助けてください。

よろしく、 - マノジ

4

2 に答える 2

3

そうしなければならない理由はありません。

あなたのルートは次のようなものに分解できると確信しています

$routeProvider.when("/:id/:name", { 
templateUrl: 'partials/property', controller: propertyCtrl })

次に $routeParams を使用して、コントローラーでホテルの名前を取得します。テンプレートの URL については、使用する必要があるテンプレートの名前を解決する文字列の代わりに関数を渡すことができます。

templateUrl:function(pathParms){...}

したがって、angular.forEach を使用する必要はありません。

于 2014-06-10T11:45:45.943 に答える