好吧,以为我明白了...
首先没有什么背景知识:我需要这样做的原因是将Angular放在Node Express之上,并让Jade为我处理我的零件。
因此,这是whatchya必须做的...(先喝啤酒,再花20多个小时!!!)...
设置模块时,请$routeProvider
全局保存:
// app.js:
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'});
});
// ctrls.js
...
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/');
});
...
那可能比所需的信息更多。。。
基本上,您将要$routeProvider
全局存储模块的var,例如,routeProvider
以便控制器可以访问它。
然后,您可以使用routeProvider
并创建一条新路由(您不能“重置一条路由” /“重新承诺”;您必须创建一条新路由),我只是在末尾添加了斜杠(/),以使其具有语义作为第一。
然后(在Controller内)将设置为templateUrl
要点击的视图。
取出对象的controller
属性.when()
,以免获得无限的请求循环。
最后(仍在Controller内),用于$location.path()
重定向到刚创建的路由。
如果您对如何将Angular应用程序添加到Express应用程序感兴趣,可以在这里派发我的仓库:https : //github.com/cScarlson/isomorph。
并且此方法还允许您保留AngularJS双向数据绑定,以防您想使用WebSockets将HTML绑定到数据库:否则,如果没有此方法,您的Angular数据绑定将仅输出{{model.param}}
。
如果此时克隆它,则需要在计算机上运行mongoDB。
希望这能解决这个问题!
科迪
不要喝你的洗澡水。
config()
仅将传递目标传递给提供者,而不传递诸如的实际服务实例$routePrams
。