当我在我的投资组合中选择项目时,我的路线为/portfolio/:workName
。在我的控制器中,我想将$scope.work
设置为基于workName选择的项目。这是我到目前为止有:在Angular Factory中获取属性元素
app.factory('Works', function(){
var Works = {}
Works.projects =[
{
name : "ProjectOne",
string : "stuff",
{
name : "ProjectTwo",
string : "more stuff",
},
{
name : "ProjectThree",
string : "stuff",
}
];
Works.findByName = function(name) {
Works.projects.forEach(function(work) {
if(work.name == name) {
return work;
}
});
}
return Works;
})
app.controller("ProjectController", function ($scope, Works, $routeParams) {
$scope.work = Works.findByName($routeParams.workName);
});
然而,在调试器中,尽管$routeParams.workName
返回 “ProjectOne”,Works.findByName($routeParams.workName)
返回undefined。
你有没有打过电话的console.log()的参数名称,Works.projects和日志里面的每一个的工作。名称。也尝试使用angular.equals(work.name,name); – Matt