Pekala, sanırım anladım ...
Önce küçük bir arka plan: Buna ihtiyacımın nedeni, Node Express'in üzerine Angular'ı yapıştırmak ve Jade'in benim için parçalarımı işlemesini sağlamaktı.
İşte yapman gereken şey ... (önce bira iç ve 20 saatten fazla harcama !!!) ...
Modülünüzü kurduğunuzda, $routeProvider
global olarak kaydedin :
var routeProvider
, app = angular.module('Isomorph', ['ngResource']).config(function($routeProvider){
routeProvider = $routeProvider;
$routeProvider
.when('/', {templateUrl: '/login', controller: 'AppCtrl'})
.when('/home', {templateUrl: '/', controller: 'AppCtrl'})
.when('/login', {templateUrl: '/login', controller: 'AppCtrl'})
.when('/SAMPLE', {templateUrl: '/SAMPLE', controller: 'SAMPLECtrl'})
.when('/map', {templateUrl: '/map', controller: 'MapCtrl'})
.when('/chat', {templateUrl: '/chat', controller: 'ChatCtrl'})
.when('/blog', {templateUrl: '/blog', controller: 'BlogCtrl'})
.when('/files', {templateUrl: '/files', controller: 'FilesCtrl'})
.when('/tasks', {templateUrl: '/tasks', controller: 'TasksCtrl'})
.when('/tasks/new', {templateUrl: '/tasks/new', controller: 'NewTaskCtrl'})
.when('/tasks/:id', {templateUrl: '/tasks', controller: 'ViewTaskCtrl'})
.when('/tasks/:id/edit', {templateUrl: '/tasks', controller: 'EditTaskCtrl'})
.when('/tasks/:id/delete', {templateUrl: '/tasks', controller: 'DeleteTaskCtrl'})
.otherwise({redirectTo: '/login'});
});
...
app.controller('EditTaskCtrl', function($scope, $routeParams, $location, $http){
var idParam = $routeParams.id;
routeProvider.when('/tasks/:id/edit/', {templateUrl: '/tasks/' + idParam + '/edit'});
$location.path('/tasks/' + idParam + '/edit/');
});
...
Bu, ihtiyaç duyulandan daha fazla bilgi olabilir ...
Temel olarak, Modülünüzün varlığını $routeProvider
küresel olarak depolamak isteyeceksiniz , örneğin routeProvider
Denetleyicileriniz tarafından erişilebilmesi için.
Sonra sadece routeProvider
YENİ bir rota kullanabilir ve oluşturabilirsiniz ('Bir rotayı SIFIRLAYINIZ' / 'Yeniden söz veremezsiniz; yeni bir tane oluşturmalısınız), sadece anlamsal olması için sonuna bir eğik çizgi (/) ekledim İlk olarak.
Ardından (Denetleyicinizin içinde), templateUrl
vurmak istediğiniz görünüme ayarlayın .
Sonsuz bir istek döngüsü elde etmek controller
için .when()
nesnenin özelliğini çıkarın .
Ve son olarak (hala Denetleyicinin içinde), $location.path()
az önce oluşturulan rotaya yeniden yönlendirmek için kullanın .
Bir Angular uygulamasını bir Express uygulamasına nasıl yapıştıracağınızla ilgileniyorsanız, depomu buradan çatallayabilirsiniz: https://github.com/cScarlson/isomorph .
Ve bu yöntem ayrıca, WebSockets kullanarak HTML'nizi veritabanınıza bağlamak istemeniz durumunda AngularJS İki Yönlü Veri Bağlamalarını korumanıza olanak tanır: aksi takdirde, bu yöntem olmadan, Açısal veri bağlamalarınız yalnızca çıktı alır {{model.param}}
.
Bunu şu anda klonlarsanız, çalıştırmak için makinenizde mongoDB'ye ihtiyacınız olacak.
Umarım bu, sorunu çözer!
Cody
Banyo suyunuzu içmeyin.
config()
gibi gerçek hizmet örnekleri değil, yalnızca sağlayıcılara geçildiğinden$routePrams
.