嘿AngularJS巫师!
我试图实现类似于以下plnkr的东西。原post。
http://plnkr.co/edit/mzQhGg?p=info
var projectsApp = angular.module('projects', ['ngResource']);
projectsApp.config(function($routeProvider) {
$routeProvider
.when('/', {
controller: 'ProjectListCtrl',
templateUrl: 'projectlist.html'})
.when('/project/:id', {
controller: 'ProjectDetailCtrl',
templateUrl: 'projectdetail.html'
})
.otherwise('/');
});
projectsApp.factory('Project', function($http) {
var json = $http.get('project.json').then(function(response) {
return response.data;
});
var Project = function(data) {
if (data) angular.copy(data, this);
};
Project.query = function() {
return json.then(function(data) {
return data.map(function(project) {
return new Project(project);
});
})
};
Project.get = function(id) {
return json.then(function(data) {
var result = null;
angular.forEach(data, function(project) {
if (project.id == id) result = new Project(project);
});
return result;
})
};
return Project;
});
projectsApp.controller('ProjectListCtrl', function(Project, $scope) {
$scope.projects = Project.query();
});
projectsApp.controller('ProjectDetailCtrl', function(Project, $routeParams, $scope) {
$scope.project = $routeParams.id
? Project.get($routeParams.id)
: new Project();
});
在这个例子中,它完美地工作但是我注意到angularjs引用是1.0.7而不是最新的1.2.26。一旦我将脚本引用更新为1.2.26,示例就会中断。我认为问题出在app.js
文件的第21行,其中angular.copy(data, this)
被调用。
我还是angularjs的新手。我尝试使用谷歌搜索,但未能弄清楚1.0.7和1.2.26之间的突破性变化。我找到了this并搜索了angular.copy()
,但我不了解与我的例子相关的后果。另外,我想更好地理解它。
提前致谢!
答案 0 :(得分:0)
您必须在代码中包含角度路由js。因为在最新版本中,路由与一般角度js脚本分开。
谢谢, Sandeep Garg